[UDF] OsTest.au3. Tester votre OS/Build/Version

Partagez des fonctions et des UDF AutoIt.
Règles du forum
.
Répondre
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

[UDF] OsTest.au3. Tester votre OS/Build/Version

#1

Message par Tlem »

Il y à quelques temps, j'avais eu besoin de faire ce genre d'UDF.
Le voici tel quel :

Fichier : OsTest.au3

Code : Tout sélectionner

#include-once
; ------------------------------------------------------------------------------
;
; AutoIt Version: 3.1.1++
; Language:       French/English
; Description:    Functions that assist with OS controls.
; author:         Tlem
;
; ------------------------------------------------------------------------------

Switch @OSLang
    ; French
    Case "040c"
        Dim $ErrOs[5] = ["", "OS Erreur", "OS Non Supporter", "Type d'OS Non Supporter", "Build Non Conforme"] 
    ; Other Language
    Case Else
        Dim $ErrOs[5] = ["", "OS Error", "OS Not Supported", "OS Type Not Supported", "Build Not Conform"] 
EndSwitch

; Examples :
; $Res = _IsOsVersionValid(1,1,0,1,1,1,1,1,1)
; $Res = _IsOsTypeValid(0,1,0)
; MsgBox(0,"",@OSBuild)
 $Res = _IsOsBuildValid ("2600" ,1, 0)
 MsgBox(64,"Infos", "Le résultat de la commande est : " & $Res)


;===============================================================================
; Description:      Returns or show error if OS is not supported.
; Parameter(s):     $W_Vista - Windows Vista
;                   $W_2003 - Windows 2003
;                   $W_XP - Windows XP
;                   $W_2000 - Windows 2000
;                   $W_NT4 - Windows NT4
;                   $W_ME - Windows 98 ME
;                   $W_98 - Windows 98
;                   $W_95 - Windows 95
;                   $ErrMsg - Show Error message (1 = Yes / 0= No)
; Requirement(s):   None
; Return Value(s):  On Success - Returns 0.
;                   On Failure - Returns 1 or 2 if OS is Unknown.
;
; Author(s):        Tlem (tlem "at" tuxolem "dot" net)
; Note(s):
; Example:          Only Vista and XP With Error Message :
;                   _IsOsVersionValid(1,0,1,0,0,0,0,0,1)
;===============================================================================
Func _IsOsVersionValid ($W_Vista=0, $W_2003=0, $W_XP=0, $W_2000=0, $W_NT4=0, $W_ME=0, $W_98=0, $W_95=0, $ErrMsg=0)
    Local $Error=0
    Switch @OSVersion
        Case "WIN_VISTA"
            If Not $W_Vista Then $Error=1
        Case "WIN_2003"
            If Not $W_2003 Then $Error=1
        Case "WIN_XP"
            If Not $W_XP Then $Error=1
        Case "WIN_2000"
            If Not $W_2000 Then $Error=1
        Case "WIN_NT4"
            If Not $W_NT4 Then $Error=1
        Case "WIN_ME"
            If Not $W_ME Then $Error=1
        Case "WIN_98"
            If Not $W_98 Then $Error=1
        Case "WIN_95"
            If Not $W_95 Then $Error=1
        Case Else
            $Error=2
    EndSwitch
    If $Error And $ErrMsg Then Msgbox(16,$ErrOs[1],$ErrOs[2])
    Return $Error
EndFunc

;===============================================================================
; Description:      Returns or show error if OS Type is not supported.
; Parameter(s):     $W32_NT - NT/2000/XP/2003/Vista OS Type
;                   $W32 - 95/98/Me OS Type
;                   $ErrMsg - Show Error message (1 = Yes / 0= No)
; Requirement(s):   None
; Return Value(s):  On Success - Returns 0.
;                   On Failure - Returns 1 or 2 if OS Type is Unknown.
;
; Author(s):        Tlem (tlem "at" tuxolem "dot" net)
; Note(s):
; Example:          Only Win32_NT Type With Error Message :
;                   _IsOsTypeValid(1,0,1)
;===============================================================================
Func _IsOsTypeValid ($W32_NT=0, $W32=0, $ErrMsg=0)
    Local $Error=0
    Switch @OSTYPE
        Case "WIN32_NT"
            If Not $W32_NT Then $Error=1
        Case "WIN32_WINDOWS"
            If Not $W32 Then $Error=1
        Case Else
            $Error=2
    EndSwitch
    If $Error And $ErrMsg Then Msgbox(16,$ErrOs[1],$ErrOs[3])
    Return $Error
EndFunc


;===============================================================================
; Description:      Returns or show error if OS Build is not conform.
; Parameter(s):     $Build - Build Version
;                   $Status - 0 Or "Min" For Build Minimum
;                             1 Or "Equ" For Build Equal
;                             2 Or "Max" For Build Maximum
;                   $ErrMsg - Show Error message (1 = Yes / 0= No)
; Requirement(s):   None
; Return Value(s):  On Success - Returns 0
;                   On Failure - Returns 1
;                   On Unknown Erreur - Return 2
;
; Author(s):        Tlem (tlem "at" tuxolem "dot" net)
; Note(s):
; Example:          Only Build 2600 and after With Error Message :
;                   _IsOsBuildValid("2600",1,1)
;===============================================================================
Func _IsOsBuildValid ($Build, $Status, $ErrMsg=0)
    Local $Error=0
    Switch $Status
        Case "Min", 0
            If @OSBuild <  $Build Then $Error=1
        Case "Equ", 1
            If @OSBuild <> $Build Then $Error=1
        Case "Max", 2
            If @OSBuild >  $Build Then $Error=1
        Case Else
            $Error=2
    EndSwitch

    If $Error And $ErrMsg Then Msgbox(16,$ErrOs[1],$ErrOs[4])
    Return $Error
EndFunc
 
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
alainb01
Niveau 1
Niveau 1
Messages : 2
Enregistré le : ven. 05 févr. 2010 08:23
Status : Hors ligne

Re: [UDF] OsTest.au3. Tester votre OS/Build/Version

#2

Message par alainb01 »

Bonjour,

juste une petite précision, sur les versions 2000 et NT4, comment déterminer si c'est un serveur ou une station ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [UDF] OsTest.au3. Tester votre OS/Build/Version

#3

Message par Tlem »

Peut être que @OSBuild renvoi une version spécifique.
Si vous avez ce matériel à disposition, il serait bien de tester...

Voici ce qui est dit dans la doc :
@OSBuild
Returns the OS build number. For example, Windows 2003 Server returns 3790
Sinon, il faudra sans doute utiliser la base de registre.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
alainb01
Niveau 1
Niveau 1
Messages : 2
Enregistré le : ven. 05 févr. 2010 08:23
Status : Hors ligne

Re: [UDF] OsTest.au3. Tester votre OS/Build/Version

#4

Message par alainb01 »

Merci pour l'info, je recherche avec cette fonction.
Répondre