#include-once ; ------------------------------------------------------------------------------ ; ; AutoIt Version: 3.1.1++ ; Language: French/English ; Description: Functions that assist with OS controls. ; ; ------------------------------------------------------------------------------ #include Switch @OSLang ; French Case "040c" Dim $ErrOs[5] = ["", "OS Erreur", "OS Non Supporté", "Type d'OS Non Supporté", "Build Non Conforme"] ; Other Language Case Else Dim $ErrOs[5] = ["", "OS Error", "OS Not Supported", "OS Type Not Supported", "Build Not Conform"] EndSwitch #cs ; Exemple d'utilisation : $Res = _IsOsVersionValid(1,1,0,1,1,1,1,1,1) MsgBox(64,"Infos", "Le résultat de la commande est : " & $Res) $Res = _IsOsTypeValid(0,1,0) MsgBox(64,"Infos", "Le résultat de la commande est : " & $Res) $Res = _IsOsBuildValid ("2600" ,1, 0) MsgBox(64,"Infos", "Le résultat de la commande est : " & $Res) #ce ;=============================================================================== ; 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