Detecter la version de windows


Contenu du snippet

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.

A voir également

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.