Récupérer la version de Windows


Propriétés du code


Date de création : 08/02/2007 à 13:27:00
2 Commentaire(s)
  violent_ken

 

Présentation


Ce code permet la récupération de votre version de Windows ainsi que du numéro de sa build.

Compatible avec Vista, XP, Server 2003, Me, 2000, 98 et 95.
Distigue chacune de ces versions entre elles (mais ne différencie par exemple pas XP Pro, Media Center...).

 

Code


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


 
 

Modifier le code

Seul les admins et l'auteur du code lui même peuvent modifier ce code.

 

Commentaires


De MadMatt le 09/02/2007 à 15:03


Avec l'arrivée de Vista ce genre de code va redevenir utile ^^

 

De MadMatt le 02/03/2007 à 23:31


Tiens je (ou plutot un vérificateur de code source lol) vient de remarquer que les variables s et l ne sont pas utilisées

 

Ajouter un commentaire


Vous devez être connecté pour pouvoir poster un commentaire.

 
 

Valid HTML 4.01 Transitional Valid CSS

Site web de Vb System Library version 1.3
Developpement et design réalisé par : Matthieu Napoli (MadMatt)
© 2007 Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
Temps d'execution de la page : 0.060 s
www.mnapoli.fr