Version de Windows desde VB

Germ?
12 de Abril del 2004
He utilizado un componente llamado SysInfo, que viene con Visual Basic. Pero este no es lo suficientemente explícito.

Alguien sabe como obtener desde visualbasic datos como la version de windows utilizada por el programa, número de serie del disco duro, etc?.

rafa
12 de Abril del 2004
La función GetVersionEx nos devuelve información que podemos usar para identificar en qué versión del sistema operativo se está ejecutando nuestro programa :



Windows 95 Windows 98 Windows Me Windows NT 4.0 Windows 2000 Windows XP
PlatformID 1 1 1 2 2 2
Major Version 4 4 4 4 5 5
Minor Version 0 10 90 0 0 1


Public Declare Function GetVersionExA Lib "kernel32" _
(lpVersionInformation As OSVERSIONINFO) As Integer

Public Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type

Public Function getVersion() As String
Dim osinfo As OSVERSIONINFO
Dim retvalue As Integer

osinfo.dwOSVersionInfoSize = 148
osinfo.szCSDVersion = Space$(128)
retvalue = GetVersionExA(osinfo)
With osinfo
Select Case .dwPlatformId
Case 1
Select Case .dwMinorVersion
Case 0
getVersion = "Windows 95"
Case 10
getVersion = "Windows 98"
Case 90
getVersion = "Windows Mellinnium"
End Select
Case 2
Select Case .dwMajorVersion
Case 3
getVersion = "Windows NT 3.51"
Case 4
getVersion = "Windows NT 4.0"
Case 5
If .dwMinorVersion = 0 Then
getVersion = "Windows 2000"
Else
getVersion = "Windows XP"
End If
End Select
Case Else
getVersion = "Failed"
End Select
End With
End Function