Version système

Comment récupérer les informations sur le système utilisé sur une machine ?

Attention, les systèmes mac et linux ne sont pas concernés ;-)

'infos sur l'OS utilisé (version, type, etc.)

 Public Declare Function GetWinVersion Lib "kernel32" Alias "GetVersionExA" _
    (lpVersionInformation As OSVERSIONINFO) As Long
 Public Declare Function GetWinVersionEx Lib "kernel32" Alias "GetVersionExA" _
    (lpVersionInformation As OSVERSIONINFOEX) As Long
 
 'Déclaration des constantes
 Const VER_SUITE_SMALLBUSINESS = &H1
 Const VER_SUITE_ENTERPRISE = &H2
 Const VER_SUITE_BACKOFFICE = &H4
 Const VER_SUITE_BLADE = &H400
 Const VER_SUITE_COMMUNICATIONS = &H8
 Const VER_SUITE_TERMINAL = &H10
 Const VER_SUITE_SMALLBUSINESS_RESTRICTED = &H20
 Const VER_SUITE_EMBEDDEDNT = &H40
 Const VER_SUITE_DATACENTER = &H80
 Const VER_SUITE_SINGLEUSERTS = &H100
 Const VER_SUITE_PERSONAL = &H200
 
 Const VER_NT_WORKSTATION = &H1
 Const VER_NT_DOMAIN_CONTROLLER = &H2
 Const VER_NT_SERVER = &H3
 
 Public Const VER_PLATFORM_WIN32s = 0
 Public Const VER_PLATFORM_WIN32_WINDOWS = 1
 Public Const VER_PLATFORM_WIN32_NT = 2
 
 'Structure pour les versions WinDOS
 Public Type OSVERSIONINFO
 dwOSVersionInfoSize As Long
 dwMajorVersion As Long
 dwMinorVersion As Long
 dwBuildNumber As Long
 dwPlatformId As Long
 szCSDVersion As String * 128 'sous type de certaines versions
 End Type
 
 'Structure pour les versions WinNT
 Public Type OSVERSIONINFOEX
 dwOSVersionInfoSize As Long
 dwMajorVersion As Long
 dwMinorVersion As Long
 dwBuildNumber As Long
 dwPlatformId As Long
 szCSDVersion As String * 128 'sous type ou info sur service pack installé
 wServicePackMajor As Integer
 wServicePackMinor As Integer
 wSuiteMask As Integer
 wProductType As Byte
 wRest As Byte
 End Type
 
 
 Public sub GetWindowsVersion() 'fs
 Dim oviWinNT As OSVERSIONINFOEX
 Dim oviWin32 As OSVERSIONINFO
 Dim strVer As String
 Dim OS As String
 Dim OSType As String
 Dim NumeroVersion As String
 Dim Detail As String
 Dim Msg$, SP$
 
 oviWin32.dwOSVersionInfoSize = Len(oviWin32)
 GetWinVersion oviWin32
 Detail = Mid(oviWin32.szCSDVersion, 2, 1)
 
 Select Case oviWin32.dwPlatformId
 
  Case VER_PLATFORM_WIN32_WINDOWS
 
   If oviWin32.dwMajorVersion = 4 And oviWin32.dwMinorVersion = 0 Then
    OS = "Windows 95"
    If Detail = "A" Then
     OS = OS & " OSR1"
    ElseIf Detail = "B" Then
     OS = OS & " OSR2"
    End If
   ElseIf oviWin32.dwMajorVersion = 4 And oviWin32.dwMinorVersion = 3 Then
    OS = "Windows 95 OSR2"
    If Detail = "B" Then
     OS = OS & ".1"
    ElseIf Detail = "C" Then
     OS = OS & ".5"
    End If
   ElseIf oviWin32.dwMajorVersion = 4 And oviWin32.dwMinorVersion = 10 Then
    OS = "Windows 98"
    If Detail = "A" Then OS = OS & " SE (Seconde Édition)"
   ElseIf oviWin32.dwMajorVersion = 4 And oviWin32.dwMinorVersion = 90 Then
    OS = "Windows ME (Millenium Édition)"
   End If
   NumeroVersion = "[" & oviWin32.dwMajorVersion & "." _
           & oviWin32.dwMinorVersion & _
           IIf(Asc(Detail) = 0, "", "." & Detail) & "]"
 
  Case VER_PLATFORM_WIN32_NT
 
   oviWinNT.dwOSVersionInfoSize = Len(oviWinNT)
   GetWinVersionEx oviWinNT
 
   If oviWinNT.dwMajorVersion = 3 And oviWinNT.dwMinorVersion = 0 Then
    OS = "Windows NT 3.0"
   ElseIf oviWinNT.dwMajorVersion = 3 And oviWinNT.dwMinorVersion = 1 Then
    OS = "Windows NT 3.1"
   ElseIf oviWinNT.dwMajorVersion = 3 And oviWinNT.dwMinorVersion = 51 Then
    OS = "Windows NT 3.51"
   ElseIf oviWinNT.dwMajorVersion = 4 Then
    OS = "Windows NT 4.0"
   ElseIf oviWinNT.dwMajorVersion = 5 And oviWinNT.dwMinorVersion = 0 Then
    OS = "Windows 2000"
   ElseIf oviWinNT.dwMajorVersion = 5 And oviWinNT.dwMinorVersion = 1 Then
    OS = "Windows XP"
   ElseIf oviWinNT.dwMajorVersion = 5 And oviWinNT.dwMinorVersion = 2 Then
    OS = "Windows 2003 Serveur"
   End If
 
   'De quel type est le produit NT/2000/XP/2003 ?
   Select Case oviWinNT.wProductType
    Case VER_NT_WORKSTATION
     If oviWinNT.dwMajorVersion < 5 Then
      OSType = "Station de travail"
     Else
      If oviWinNT.wSuiteMask And VER_SUITE_PERSONAL Then
       OSType = "Édition familiale"
      Else
       OSType = "Professionnel"
      End If
     End If
    Case VER_NT_DOMAIN_CONTROLLER
     OSType = "Serveur (Contrôleur de domaine)"
    Case VER_NT_SERVER
     If oviWinNT.wSuiteMask And VER_SUITE_DATACENTER Then
      OSType = "Serveur (Centre de données)"
     ElseIf oviWinNT.wSuiteMask And VER_SUITE_ENTERPRISE Then
      If oviWinNT.dwMajorVersion = 5 And oviWinNT.dwMinorVersion = 0 Then
       OSType = "Serveur avancé"
      Else
       OSType = "Edition Entreprise"
      End If
     ElseIf oviWinNT.wSuiteMask And VER_SUITE_BLADE Then
      OSType = "Édition Web"
     Else
      OSType = "Serveur"
     End If
   End Select
 
   NumeroVersion = "[" & oviWinNT.dwMajorVersion & "." _
           & oviWinNT.dwMinorVersion & "." _
           & oviWinNT.dwBuildNumber & "]"
 
   If oviWinNT.wServicePackMajor >= 1 Then
    SP = "Service Pack : " & oviWinNT.wServicePackMajor & "." & _
               oviWinNT.wServicePackMinor
   Else
    SP = "Service Pack : " & "Aucun Service Pack installé"
   End If
 
 End Select
 
 Msg = "Système : " & OS & " " & OSType & vbLf
 Msg = Msg & "Numéro version : " & NumeroVersion & vbLf
 Msg = Msg & SP
 
 MsgBox Msg
 
 end sub

Auteur :

Mots clefs associés à cette page : ,