[Help] Versions Windows

Résolu
ianis24 Messages postés 87 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 13 janvier 2011 - 19 avril 2009 à 00:06
ianis24 Messages postés 87 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 13 janvier 2011 - 19 avril 2009 à 16:43
Bonjour je souhaite inclure
-vista
-windows 7
-Windows Home server
-Windows Server 2008
a ce code :
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 / WIN 3.1
 Private Const VER_PLATFORM_WIN32_WIN = 1 ' WIN 95, WIN 98, ou WIN Me
 Private Const VER_PLATFORM_WIN32_NT = 2 ' WIN NT, WIN 2000, WIN XP, ou WIN Server 2003 familiale.

Public Function GetOS() 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 / WIN 3.1
 GetOS = "WIN 3.1"

 Case VER_PLATFORM_WIN32_WIN ' WIN 95, WIN 98,
 Select Case .dwMinorVersion ' ou WIN Me
 Case 0
 GetOS = "WIN 95"
 Case 10
If (OSInfo.dwBuildNumber And &HFFFF&) = 2222 Then
 GetOS = "WIN 98SE"
Else
 GetOS = "WIN 98"
End If
 Case 90
 GetOS = "WIN Me"
 End Select

 Case VER_PLATFORM_WIN32_NT ' WIN NT, WIN 2000, WIN XP,
 Select Case .dwMajorVersion ' ou WIN Server 2003 family.
 Case 3
 GetOS = "WIN NT 3.51"
 Case 4
 GetOS = "WIN NT 4.0"
 Case 5
 Select Case .dwMinorVersion
 Case 0
 GetOS = "WIN 2K"
 Case 1
 GetOS = "WIN XP"
 Case 2
 GetOS = "WIN SERVER 2K3"
 End Select
 End Select

 Case Else
 GetOS = "Failed"
 End Select

 End With
 End Function

J'ai essayer plusieurs variantes du code afin d'inclure les version windows ci dessus mais celle-ci ne fonctionne pas
Si quelqu'un à l'amabilité de me donner un code fonctionnant avec ces versions de windows ou de modifier celui .

3 réponses

ianis24 Messages postés 87 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 13 janvier 2011
19 avril 2009 à 16:43
Voici la Réponse a ma question merci quand même :)


Public Declare Function GetVersionExA Lib "kernel32" (lpVersionInformation As OSVERSIONINFOEX) As Integer
Public Type OSVERSIONINFOEX
   dwOSVersionInfoSize As Long
   dwMajorVersion As Long
   dwMinorVersion As Long
   dwBuildNumber As Long
   dwPlatformId As Long
   szCSDVersion As String * 128
   
   wServicePackMajor As Integer
   wServicePackMinor As Integer
   wSuiteMask As Integer
   wProductType As Byte
   wReserved As Byte
End Type
Public Function GetVersion() As String
   On Error Resume Next
   Dim osinfo As OSVERSIONINFOEX
   Dim retvalue As Integer
   osinfo.dwOSVersionInfoSize = 148
   osinfo.szCSDVersion = Space$(128)
   retvalue = GetVersionExA(osinfo)
   With osinfo
   MsgBox .wProductType
    Select Case .dwPlatformId
     Case 1
      Select Case .dwMinorVersion
       Case 0
        GetVersion = "Windows 95"
       Case 10
        GetVersion = "Windows 98"
       Case 90
        GetVersion = "Windows Millennium"
      End Select
     Case 2
      Select Case .dwMajorVersion
       Case 3
        GetVersion = "Windows NT 3.51"
       Case 4
        GetVersion = "Windows NT 4.0"
       Case 5
        Select Case .dwMinorVersion
         Case 0
          GetVersion = "Windows 2000"
         Case 1
          GetVersion = "Windows XP"
         Case 2
          GetVersion = "Windows Server 2003"
        End Select
       Case 6
        If .wProductType = "VER_NT_WORKSTATION" Then
         GetVersion = "Windows Vista"
        Else
         GetVersion = "Windows Server 2008"
        End If
      End Select
     Case Else
      GetVersion = "Unknown Windows"
    End Select
   End With
End Function
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
19 avril 2009 à 09:25
Perso, je dirais que XP toute version, Server 2003 toute version, Server 2008 toute version, Vista et Seven toute version devraient logiquement être toutes identifiés par la constante VER_PLATFORM_WIN32_NT.

Ce sont toutes des plateformes NT, puisque c'est la seule plateforme qui reste chez Microsoft. La plateforme "classique" ayant été arrêtée avec Win98 et Millenium

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
19 avril 2009 à 09:40
Tu trouvera toutes les infos nécessaire sur GetVersionEx, ici, et

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
0
Rejoignez-nous