Déterminer la version de windows (fonction api getversion)

Contenu du snippet

Ce petit programme permet de déterminer la version de Windows en utilisant la fonction API GetVersionExA.

Source / Exemple :


Placez le code suivant dans un module :

Option Explicit

Private Declare Function GetVersionExA Lib "kernel32" _
                 (lpVersionInformation As OSVERSIONINFO) As Integer
    
Private Type OSVERSIONINFO
    dwOSVersionInfoSize As Long
    dwMajorVersion As Long
    dwMinorVersion As Long
    dwBuildNumber As Long
    dwPlatformId As Long
    szCSDVersion As String * 128
    wServicePackMajor As Integer  ' Version Majeur du Service Pack
    wServicePackMinor As Integer  ' Version Mineur du Service Pack
End Type

Private Const VER_PLATFORM_WIN32s = 0       ' Win32s / Windows 3.1
Private Const VER_PLATFORM_WIN32_WINDOWS = 1 ' Windows 95, Windows 98, ou Windows Me
Private Const VER_PLATFORM_WIN32_NT = 2     ' Windows NT, Windows 2000, Windows XP, ou Windows Server 2003 familiale.

'         Version   Version
' Système   Platforme Majeur  Mineur   Build
' Windows 95  1   4    0
' Windows 98  1   4   10   1998
' Windows 98SE  1   4   10   2222
' Windows Me  1   4   90   3000
' NT 3.51   2   3   51
' NT    2   4    0   1381
' 2000    2   5    0
' XP    2   5    1   2600
' Server 2003   2   5    2

Public Function VBWinVer() As String
Dim OSInfo As OSVERSIONINFO
Dim retvalue As Integer
    
OSInfo.dwOSVersionInfoSize = 156
OSInfo.szCSDVersion = Space$(128)
retvalue = GetVersionExA(OSInfo)
With OSInfo
     Select Case .dwPlatformId
         Case VER_PLATFORM_WIN32s           ' Win32s / Windows 3.1
                VBWinVer = "Windows 3.1"
                 
         Case VER_PLATFORM_WIN32_WINDOWS    ' Windows 95, Windows 98,
                Select Case .dwMinorVersion ' ou Windows Me
                    Case 0
                        VBWinVer = "Windows 95"
                    Case 10
                        If (OSInfo.dwBuildNumber And &HFFFF&) = 2222 Then
                            VBWinVer = "Windows 98SE"
                        Else
                            VBWinVer = "Windows 98"
                        End If
                    Case 90
                        VBWinVer = "Windows Me"
                End Select
     
         Case VER_PLATFORM_WIN32_NT     ' Windows NT, Windows 2000, Windows XP,
                Select Case .dwMajorVersion ' ou Windows Server 2003 family.
                    Case 3
                        VBWinVer = "Windows NT 3.51"
                    Case 4
                        VBWinVer = "Windows NT 4.0"
                    Case 5
                        Select Case .dwMinorVersion
                            Case 0
                                VBWinVer = "Windows 2000"
                            Case 1
                                VBWinVer = "Windows XP"
                            Case 2
                                VBWinVer = "Windows Server 2003"
                        End Select
                End Select
                     
         Case Else
                VBWinVer = "Failed"
     End Select
     If VBWinVer <> "Failed" And .wServicePackMajor <> 0 Then
       'Ajouter la version du Service Pack Installé
        VBWinVer = VBWinVer & " Service Pack " & Trim(Str(.wServicePackMajor)) & "." & Trim(Str(.wServicePackMinor))
     End If
End With
End Function

'**************************************************************

Ensuite, placez le code suivant dans l'évenement Click d'un bouton dans un Form :

  MsgBox VBWinVer

Et voilà.

Conclusion :


Je me permet de mettre ce code source après avoir rechercher dans vbfrance un code similaire et que je n'ai pas trouvé d'exemples (Enfin je ne suis pas sûr).

Ce code est tiré de site suivant :

http://www.tek-tips.com/faqs.cfm?fid=4599

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.