#include-once ; ------------------------------------------------------------------------------ ; ; AutoIt Version: 3.3.12++ ; 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é ", "Build Non Conforme ", "Architecture non Supportée "] ; Other Language Case Else Dim $ErrOs[6] = ["", "Error", "OS Not Supported ", "Build Not Conform ", "Arch Type Not Supported "] EndSwitch ;=============================================================================== ; Function _IsOsVersion ($OsVersion[, $ErrMsg=0]) ; Description: Returns or show error if OS is not supported. ; Parameter(s): ; $OsVersion : Can be a combination of these OS : ; Regular OS : ; WIN_10 - Windows 10 ; WIN_8.1 - Windows 8.1 (6.3) ; WIN_8 - Windows 8 (6.2) ; WIN_7 - Windows Seven (6.1) ; WIN_VISTA - Windows Vista (6.0) ; WIN_XPe - windows XP Embedded () ; WIN_XP - Windows XP (5.1) ; Servers : ; WIN_2012R2 - Windows 2012R2 Server (6.3) ; WIN_2012 - Windows 2012 Server (6.2) ; WIN_2008R2 - Windows 2008R2 Server (6.1) ; WIN_2008 - Windows 2008 Server (6.0) ; WIN_2003 - Windows 2003 Server (5.2) ; WIN_95 - Windows 95 (4.00 Or 4.03) ; ; $ErrMsg - 1 - Show Error message ; 0 - Do Not Show Error message (Default) ; ; 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) ;=============================================================================== Func _IsOsVersion ($OsVersion, $ErrMsg=0) Local $OS = 'WIN_10, WIN_81, WIN_8, WIN_7, WIN_VISTA, WIN_XP, WIN_XPe, WIN_2012R2, WIN_2012, WIN_2008R2, WIN_2008, WIN_2003' 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 ;=============================================================================== ; Function _IsOsBuild ($Build, $Status[, $ErrMsg=0]) ; 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 - 1 - Show Error message ; 0 - Do Not Show Error message (Default) ; Requirement(s): None ; Return Value(s): On Success - Returns 1 ; On Failure - Returns 0 ; @error = 1 - Build not correspondig ; @error = 2 - If Status not correctly specified ; ; 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 Return SetError(2, 0, 0) EndSwitch If @error Then If $ErrMsg Then Msgbox(16,$ErrOs[1],$ErrOs[3]) Return 0 Else Return 1 EndIf EndFunc ;=============================================================================== ; Function _IsOsArch ($ArchType[, $ErrMsg=0]) ; Description: Returns or show error if OS Arch is not supported. ; Parameter(s): ; $ArchType : Can be a combination of these Architecture : ; X86 - X86 Arch Type ; IA64 - IA64 Arch Type ; X64 - X64 Arch Type ; ; $ErrMsg - 1 - Show Error message ; 0 - Do Not Show Error message (Default) ; 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[4]) Return 0 EndIf EndFunc