Option Explicit
'-------------------------------------------------------
'ENUMS & TYPES
'-------------------------------------------------------
'liste des versions de Windows
Public Enum WINDOWS_VERSION
[Windows Vista]
[Windows Server 2003]
[Windows XP]
[Windows 2000]
[Windows Me]
[Windows 98]
[Windows 95]
[UnKnown]
End Enum
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type
'-------------------------------------------------------
'API
'-------------------------------------------------------
Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long
'-------------------------------------------------------
'récupère la version de Windows
'-------------------------------------------------------
Public Function GetWindowsVersion(Optional ByRef sWindowsVersion As String, Optional ByRef lBuildNumber As Long) As WINDOWS_VERSION
Dim OS As OSVERSIONINFO
Dim s As String, l As Long
'taille de la structure
OS.dwOSVersionInfoSize = Len(OS)
'récupère l'info sur la version
If GetVersionEx(OS) = 0 Then
'échec
sWindowsVersion = "Cannot retrieve information"
GetWindowsVersion = UnKnown
Exit Function
End If
'numéro de la build
lBuildNumber = OS.dwBuildNumber
'récupère la version en fonction de Major et Minor
Select Case OS.dwMajorVersion
Case 6
GetWindowsVersion = [Windows Vista]
sWindowsVersion = "Windows Vista"
Exit Function
Case 5
If OS.dwMinorVersion = 2 Then
GetWindowsVersion = [Windows Server 2003]
sWindowsVersion = "Windows Server 2003"
ElseIf OS.dwMinorVersion = 1 Then
GetWindowsVersion = [Windows XP]
sWindowsVersion = "Windows XP"
ElseIf OS.dwMinorVersion = 0 Then
GetWindowsVersion = [Windows 2000]
sWindowsVersion = "Windows 2000"
End If
Exit Function
Case 4
If OS.dwMinorVersion = 90 Then
GetWindowsVersion = [Windows Me]
sWindowsVersion = "Windows ME"
ElseIf OS.dwMinorVersion = 10 Then
GetWindowsVersion = [Windows 98]
sWindowsVersion = "Windows 98"
ElseIf OS.dwMinorVersion = 0 Then
GetWindowsVersion = [Windows 95]
sWindowsVersion = "Windows 95"
End If
Exit Function
End Select
GetWindowsVersion = UnKnown
End Function
Seul les admins et l'auteur du code lui même peuvent modifier ce code.