Ce code est une fonction qui renvoie un nombre représentant la version de Windows. Il est extrait d'un programme beaucoup plus gros affichant de nombreuses informations sur le système.
Source / Exemple :
Option Explicit
Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long
Private Const VER_PLATFORM_WIN32s = 0
Private Const VER_PLATFORM_WIN32_WINDOWS = 1
Private Const VER_PLATFORM_WIN32_NT = 2
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
wSPMajor As Integer
End Type
Public Enum EnumWinVer
Win95 = 0
Win95OSR2 = 1
Win98 = 2
Win98SE = 3
WinME = 4
WinNT3_0 = 5
WinNT3_1 = 6
WinNT3_5 = 7
WinNT4 = 8
WinNT5 = 9
Win2k = 9
WinXP = 10
End Enum
Public Function GetVersion() As EnumWinVer
Dim myVer As OSVERSIONINFO
Dim dl&
myVer.dwOSVersionInfoSize = 148
dl& = GetVersionEx&(myVer)
If myVer.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then
If myVer.dwMajorVersion = 4 And myVer.dwMinorVersion = 0 Then
If myVer.dwBuildNumber = 950 Then
GetVersion = Win95
Else
GetVersion = Win95OSR2
End If
ElseIf myVer.dwMajorVersion = 4 And myVer.dwMinorVersion = 10 Then
If myVer.dwBuildNumber = 1998 Then
GetVersion = Win98
Else
GetVersion = Win98SE
End If
ElseIf myVer.dwMajorVersion >= 4 And myVer.dwMinorVersion > 10 Then
GetVersion = WinME
End If
ElseIf myVer.dwPlatformId = VER_PLATFORM_WIN32_NT Then
If myVer.dwMajorVersion = 3 And myVer.dwMinorVersion = 0 Then
GetVersion = WinNT3_0
ElseIf myVer.dwMajorVersion = 3 And myVer.dwMinorVersion = 1 Then
GetVersion = WinNT3_1
ElseIf myVer.dwMajorVersion = 3 And myVer.dwMinorVersion = 5 Then
GetVersion = WinNT3_5
ElseIf myVer.dwMajorVersion = 4 Then
GetVersion = WinNT4
ElseIf myVer.dwMajorVersion = 5 And myVer.dwMinorVersion = 0 Then
GetVersion = Win2k
ElseIf myVer.dwMajorVersion = 5 And myVer.dwMinorVersion = 1 Then
GetVersion = WinXP
End If
End If
End Function
Conclusion :
Je n'ai pas eu l'occasion de tester ce code sous d'autres systèmes que le mien (WindowsME). S'il comporte une erreur, merci de le signaler.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.