如何判別程式是在 Windows 95 或 NT 底下執行?
此時須呼叫 GetVersionEx 函數, 細節如下:
1. API 的宣告:
Type OSVERSIONINFO dwOSVersionInfoSize As Long dwMajorVersion As Long dwMinorVersion As Long dwBuildNumber As Long dwPlatformId As Long szCSDVersion As String * 128 End Type
Public Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Boolean
Public Const VER_PLATFORM_WIN32s = 0
Public Const VER_PLATFORM_WIN32_WINDOWS = 1
Public Const VER_PLATFORM_WIN32_NT = 2
註:以上的宣告須放在「一般模組」中。
2. 程式範例:
Dim Ver As OSVERSIONINFO
Ver.dwOSVersionInfoSize = Len(Ver)
Call GetVersionEx(Ver)
呼叫之後,Ver.dwPlatformId 的值可用判斷作業系統平台 - 95 或 NT,如下表:
VER_PLATFORM_WIN32s | Win32s - 讓 Windows 3.1 可執行 32 位元應用程式的平台 |
VER_PLATFORM_WIN32_WINDOWS | Windows 95, 98 |
VER_PLATFORM_WIN32_NT | Windows NT |
除了 Ver.dwPlatformId 之外, Ver.dwMajorVersion 及 Ver.dwMinorVersion 可用來判斷版本,以 Windows 95 為例, Ver.dwMajorVersion 等於 4&127;, 而 Ver.dwMinorVersion 等於 0, 表示 Windows 95 是 4.0 版。