#include-once ; ------------------------------------------------------------------------------ ; ; AutoIt Version: 3.1.1++ ; Language: French/English ; Description: Functions that assist with OS controls. ; ; ------------------------------------------------------------------------------ Switch @OSLang ; French Case "040c", "080c", "0c0c", "100c", "140c", "180c" Dim $ErrOs[6] = ["", "Erreur", "OS Non Supporté ", "Type d'OS Non Supporté ", "Build Non Conforme ", "Architecture non Supportée "] ; Other Language Case Else Dim $ErrOs[6] = ["", "Error", "OS Not Supported ", "OS Type Not Supported ", "Build Not Conform ", "Arch Type Not Supported "] EndSwitch ;=============================================================================== ; Description: Returns or show error if OS is not supported. ; Parameter(s): ; WIN_SEVEN - Windows Seven ; WIN_2008 - Windows Vista ; WIN_VISTA - Windows Vista ; WIN_2003 - Windows 2003 ; WIN_XP - Windows XP ; WIN_2000 - Windows 2000 ; WIN_NT4 - Windows NT4 ; WIN_ME - Windows 98 ME ; WIN_98 - Windows 98 ; WIN_95 - Windows 95 ; $ErrMsg - Show Error message (1 = Yes / 0= No) ; Requirement(s): None ; Return Value(s): On Success - Returns 1. ; On Failure - Returns 0 and set error ; - @error = 1 OS not supported. ; - @error = 2 OS is Unknown. ; ; Author(s): Tlem (tlem "at" tuxolem "dot" net) ; Note(s): ; Example: Only Vista and XP With Error Message : ; _IsOsVersion('WIN_VISTA, WIN_XP', 1) ; ; Only New OS : _IsOsVersion('WIN_SEVEN, WIN_2008, WIN_VISTA, WIN_2003, WIN_XP, WIN_2000', 1) ;=============================================================================== Func _IsOsVersion ($OsVersion, $ErrMsg=0) Local $OS = 'WIN_SEVEN, WIN_2008, WIN_VISTA, WIN_2003, WIN_XP, WIN_2000, WIN_NT4, WIN_ME, WIN_98, WIN_95' If StringInStr($OsVersion, @OSVersion) Then Return 1 ElseIf Not StringInStr($OS, @OSVersion) Then SetError(2) Else SetError(1) EndIf If @error Then If $ErrMsg Then Msgbox(16,$ErrOs[1],$ErrOs[2]) Return 0 EndIf EndFunc ;=============================================================================== ; Description: Returns or show error if OS Type is not supported. ; Parameter(s): ; $W32_NT - NT/2000/XP/2003/Vista/2008/Seven 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 1. ; On Failure - Returns 0 and set error ; - @error = 1 OS not supported. ; - @error = 2 OS is Unknown. ; ; Author(s): Tlem (tlem "at" tuxolem "dot" net) ; Note(s): ; Example: Only Win32_NT Type With Error Message : ; _IsOsType(1,0,1) ;=============================================================================== Func _IsOsType ($W32_NT=0, $W32=0, $ErrMsg=0) Switch @OSTYPE Case "WIN32_NT" If Not $W32_NT Then SetError(1) Case "WIN32_WINDOWS" If Not $W32 Then SetError(1) Case Else SetError(2) EndSwitch If @error Then If $ErrMsg Then Msgbox(16,$ErrOs[1],$ErrOs[3]) Return 0 Else Return 1 EndIf 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 1 ; On Failure - Returns 0 and set @error = 1 ; On Unknown Erreur - @error = 2 ; ; Author(s): Tlem (tlem "at" tuxolem "dot" net) ; Note(s): ; Example: Only Build 2600 and after With Error Message : ; _IsOsBuild("2600",1,1) ;=============================================================================== Func _IsOsBuild ($Build, $Status, $ErrMsg=0) Switch $Status Case "Min", 0 If @OSBuild < $Build Then SetError(1) Case "Equ", 1 If @OSBuild <> $Build Then SetError(1) Case "Max", 2 If @OSBuild > $Build Then SetError(1) Case Else SetError(2) EndSwitch If @error Then If $ErrMsg Then Msgbox(16,$ErrOs[1],$ErrOs[4]) Return 0 Else Return 1 EndIf EndFunc ; @OSArch ; Returns one of the following: "X86", "IA64", "X64" - this is the architecture type of the currently running operating system. ;=============================================================================== ; Description: Returns or show error if OS Arch is not supported. ; Parameter(s): ; X86 - X86 Arch Type ; IA64 - IA64 Arch Type ; X64 - X64 Arch Type ; $ErrMsg - Show Error message (1 = Yes / 0= No) ; Requirement(s): None ; Return Value(s): On Success - Returns 1. ; On Failure - Returns 0 and set error ; - @error = 1 Arch Type not supported. ; - @error = 2 Arch Type is Unknown. ; ; Author(s): Tlem (tlem "at" tuxolem "dot" net) ; Note(s): ; Example: Only 64 byte Arch Type With Error Message : ; _IsOsArch('IA64,X64',1) ;=============================================================================== Func _IsOsArch ($ArchType, $ErrMsg=0) Local $Arch = 'X86, IA64, X64' If StringInStr($ArchType, @OSArch) Then Return 1 ElseIf Not StringInStr($ArchType, @OSArch) Then SetError(2) Else SetError(1) EndIf If @error Then If $ErrMsg Then Msgbox(16,$ErrOs[1],$ErrOs[5]) Return 0 EndIf EndFunc