Como saber si un windows es server o Work station y su idioma
Amigos de la lista, necesito un c贸digo para saber si un windows es w2k professional, w2k server, Windows NT4 server y Windows NT4 WS; tambi茅n saber su idioma. Solo he logrado con una API identificar la versi贸n del sistema operativo de manera general (w95, w98, wME, Wnt3.1, wnt4, w2k y wXP). Agradezco de antemano cualquier ayuda que me pudieran dar al respecto.
Yo necesito esto porque quiero hacer un programa que instale autom谩ticamente los parches microsoft que salen cada semana en las PC's de mi red (m谩s de 300), pero para eso necesito el idioma y la versi贸n exacta (incluyendo si el SO es server o WS).
Este es el c贸digo con el que se puede detectar la versi贸n del SO pero no puedo obtener si el Windows 2000 es professional o server o si el NT4 es Server o WorkStation ni el idioma de cada SO, por favor ay煤demme a implementar esto ya que creo que puede ser de mucha utilidad para todos:
' Primero se crea un m贸dulo con el siguiente c贸digo:
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
' Luego en el formulario se coloca la siguiente funci贸n:
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 Millennium"
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
' Primero se crea un m贸dulo con el siguiente c贸digo:
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
' Luego en el formulario se coloca la siguiente funci贸n:
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 Millennium"
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
