得知電腦的系統
如何得知電腦的系統是否Windows98?或者是Windows NT等?這問題也許大家也想知吧!首先要用到API函數GetVersionEx:
Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128 ' Maintenance string for PSS usage
End Type
Private Sub Command1_Click()
Dim SysInfo As OSVERSIONINFO
SysInfo.dwOSVersionInfoSize = Len(SysInfo)
GetVersionEx SysInfo
Print SysInfo.dwBuildNumber
Print SysInfo.dwMajorVersion
Print SysInfo.dwMinorVersion
Print SysInfo.dwPlatformId
Print SysInfo.szCSDVersion
End Sub
最後,您會看到用一些傳回值,看看系統資訊,有些數值正好和第一行的數值一樣,因此我們就可以憑著dwPlatformId、dwMajorVersion和dwMinorVersion查出系統是甚麼形號了!以下是一些資料,但不齊全,希望各位看過本文的網友提供!
System: | dwPlatformId: | dwMajorVersion: | dwMinorVersion: |
Win3.1 | 0 | 不明 | 不明 |
Windows95 | 1 | 不明 | 0 |
Windows98 | 1 | 4 | 10 |
WindowsNT | 2 | 不明 | 不明 |
WindowsME | 1 | 不明 | 不明(不等於0) |
Windows2000 | 不明 | 不明 | 不明 |
於是我們可以寫以下副程式檢查系統:
Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long
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 Sub Form_Load()
Dim SysInfo As OSVERSIONINFO
SysInfo.dwOSVersionInfoSize = Len(SysInfo)
GetVersionEx SysInfo
Select Case SysInfo.dwPlatformId
Case 0
Print "Win3.1"
Case 1
If SysInfo.dwMinorVersion = 0 Then
Print = "Win95"
Else
Print = "Win98/WinMe"
End If
Case 2
Print = "NT"
End Select
End Sub