Page 1 sur 1
[R] OS complet ?
Posté : sam. 04 sept. 2010 08:48
par JohnWayne
Bonjour,
J'aurais voulu savoir si il y avait une fonction sous autoIT qui retournait l'OS complet ?
Si on utilise @OSversion sa nous renvoie par exemple : WIN_XP
Or c'est pas très "beau", j'aimerais qu'il retourne plutôt : Windows XP
Je pourrais tester si @osversion = "WIN_XP" alors j'écris Windows XP mais c'est pas très pratique.
Peut on le faire avec autoIT ou je dois passer par un prog externe ?
Merci,
JW
Re: [...] OS complet ?
Posté : sam. 04 sept. 2010 09:59
par BlueCore
Salut JohnWayne.
Tu devrais chercher du coté des WMI (grace à
WMI Tools par exemple), tu obtiendras un beau
Microsoft Windows XP.
Je fait une recherche approfondie de mon coté, et j'édites.
Déjà, le plus simple est d'utiliser un UDF (CompInfo.au3) avec le code suivant. Mais bon ça fait quand même 2644 lignes de codes en plus.
► Afficher le textecode
Code : Tout sélectionner
#include <CompInfo.au3>
Dim $aOSInfo
_ComputerGetOSs($aOSInfo)
For $i = 1 To $aOSInfo[0][0] Step 1
;Microsoft Windows = nOSName
$nOSName = StringSplit($aOSInfo[$i][0], "|")
$nOSName = $nOSName[1]
;Version (6.1 pour ma part) et Service Pack
$nOSVersion = $aOSInfo[$i][58]
$nOSServicePack = $aOSInfo[$i][47]
;Vire cette partie pour garder 'Microsoft' sur le nom
$nOSName = StringReplace($nOSName, "Microsoft", "")
;Vire cette partie pour enlever le Service Pack du nom de l'OS
If $nOSServicePack > 0 Then
$nOSName = $nOSName & " SP" & $nOSServicePack
EndIf
;Vire cette partie pour enlever la Build de la version de l'OS
$nOSVersion = $nOSVersion & " (Build " & $aOSInfo[$i][2] & ")"
;Vire cette partie pour ne pas afficher le résultat
MsgBox(64, "Informations", $nOSName & @CRLF & $nOSVersion)
Next
sinon, cherche dans CIMV2 pour les WMI Tools, tu trouveras facilement.
- BlueCore
Re: [...] OS complet ?
Posté : sam. 04 sept. 2010 10:12
par jl56
Bonjour
Avec WMI ( recherche sur ce forum ou chez microsoft ) tu peux avoir plein d'info
Pour un de mes scripts j'utilise ceci
Code : Tout sélectionner
Global $WBEMFLAGRETURNIMMEDIATELY = 16
Global $WBEMFLAGFORWARDONLY = 32
$STRCOMPUTER = StringLower(@ComputerName)
If @error = 1 Then Exit
$COLITEMS = ""
$OBJWMISERVICE = ObjGet("winmgmts:\\" & $STRCOMPUTER & "\root\CIMV2")
$COLITEMS = $OBJWMISERVICE.ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", $WBEMFLAGRETURNIMMEDIATELY + $WBEMFLAGFORWARDONLY)
If IsObj($COLITEMS) Then
For $OBJITEM In $COLITEMS
$pc_os2 = StringSplit($OBJITEM.Name, "|")
$pc_os = $pc_os2[1]
; j'utilise les lignes suivantes pour supprimer les mots inutiles
$pc_os = StringReplace($pc_os, "Microsoft ", "")
;~ $pc_os = StringReplace($pc_os, "Windows ", "")
$pc_os = StringReplace($pc_os, "Microsoft", "")
;~ $pc_os = StringReplace($pc_os, "Windows", "")
$pc_servicepack = $OBJITEM.CSDVersion
Next
EndIf
MsgBox(0,"OS",$pc_os&@CRLF&$pc_servicepack)
A+ JL56
Re: [...] OS complet ?
Posté : sam. 04 sept. 2010 16:57
par JohnWayne
Salut
Merci pour vos réponse, la WMI tool correspond parfaitement à ce que je recherche
++