如何用vb判断系统是2000professional还是2000 server

解决方案 »

  1.   

    使用API中的GETVERSIONEX
    代码如下:Private Type OSVERSIONINFO
      dwOSVersionInfoSize As Long
      dwMajorVersion As Long
      dwMinorVersion As Long
      dwBuildNumber As Long
      dwPlatformId As Long
      szCSDVersion As String * 128
    End Type
    Private Declare Function GetVersionEx Lib "kernel32.dll" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As LongPrivate Sub Form_Load()
      Dim os As OSVERSIONINFO
      Dim retval As Long
      os.dwOSVersionInfoSize = Len(os)
      retval = GetVersionEx(os)
      MsgBox "Windows version number:" & os.dwMajorVersion & Chr(Asc(".")) & os.dwMinorVersion
      MsgBox "OS Version Info Size = " & os.dwOSVersionInfoSize
      MsgBox "BuildNumber = " & os.dwBuildNumber
      MsgBox "Platform ID = " & os.dwPlatformId  'ID =0 win 3.x , ID=1 win9x and ID =2 WINNT
      MsgBox "CSD Version = " & os.szCSDVersion
    EndEnd Sub
    你要的判断的在"CSD Version"下的wProductTypeVER_NT_WORKSTATION The system is running Windows NT 4.0   Workstation,                Windows 2000 Professional, Windows XP Home Edition, or Windows XP Professional. VER_NT_DOMAIN_CONTROLLER The system is a domain controller. VER_NT_SERVER The system is a server. 详细的资料请查询:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/osversioninfo_str.asp
      

  2.   

    对了,忘记一个地方.
    就是你的机器必须要打了Serives Pack补丁后,"CSD Version"才能返回值,否则返回空值.注意注意.