Detecter la version de windows

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 250 fois - Téléchargée 38 fois


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

Ajouter un commentaire Commentaires
FeelCode Messages postés 278 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 27 avril 2006 1
31 oct. 2004 à 00:17
Fonctionne sous XP home SPK 2 :) sa va me servire
cs_kogaratsu Messages postés 1 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 21 février 2004
21 févr. 2004 à 16:21
fonctionne sous xp pro
YS1 Messages postés 40 Date d'inscription samedi 12 avril 2003 Statut Membre Dernière intervention 13 mai 2006
12 juin 2003 à 09:50
Je ne suis pas en mesure de tester moi-même s'il existe un moyen de différencier WinXP-HE de WinXP-Pro, ni un serveur d'une autre version, ni Win2003 d'un autre, puisque je ne possède que WinME.

Il faudrait soit chercher des informations déjà publiées, soit que quelqu'un possédant un de ces sytèmes utilise l'API GetVersionEx et trouve des valeurs significatives dans les résultats.
MangaII Messages postés 129 Date d'inscription dimanche 9 décembre 2001 Statut Membre Dernière intervention 12 janvier 2009
12 juin 2003 à 09:28
Il te manque qques windows, puisque le 2003 est sorti !
Mais y'a-t-il moyen de différencier un XP Home d'un Pro ? un serveur d'un Workstation ?
Ca serai interressant !!!
parce que mm sur win2k, nt4 ... il existe des version serveur !
A+
YS1 Messages postés 40 Date d'inscription samedi 12 avril 2003 Statut Membre Dernière intervention 13 mai 2006
11 juin 2003 à 21:40
Pour connaître la version de Windows, vous appelez la fonction avec quelque chose comme :
RetVal = GetVersion()

RetVal prend alors une valeur entière symbolisant la version de Windows (par exemple : 2 pour Windows 98).

La variable myVer est interne à la fonction GetVersion(). Vous n'avez pas besoin de vous en occuper.
Afficher les 6 commentaires

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.