在Windows9x編程過程中,我們經常需要了解當前系統的運行狀態。例如,如果Win9x運行于安全模式,那么多媒體等部件可能無法正確運行。程序中有必要對此做相應處理,以提高程序安全性,增強系統的適應能力。VB中沒有直接提供此類控制或函數,但是我們可以通過API函數GetSystemMetrics輕松地實現對Win運行模式的判斷。
GetSystemMetrics函數原型如下:
Public Declare Function GetSystemMetrics Lib “user32” (ByVal nIndex As Long) As Long
其中nIndex的不同取值可以使該函數實現不同的功能。例如返回Win桌面中各種顯示單元的寬度和高度、是否安裝了鼠標、是否調換了鼠標左右鍵的定義等。
當nIndex = 67(SM_CLEANBOOT)時,該函數的返回值表示Windows9x的當前運行模式。
在以下的示例中我們可以看到GetSystemMetrics函數的用法和作用。首先在BAS模塊文件中做如下說明:
Option Explicit Public Const SM_CLEANBOOT = 67 Public Declare Function GetSystemMetrics Lib “user32” (ByVal nIndex As Long) As Long
在窗體中添加標簽Label1和命令按鈕Command1,設置如下代碼:
Private Sub Command1_Click() Select Case GetSystemMetrics(SM_CLEANBOOT)
Case 0:Label1=“系統運行于正常模式” Case 1:Label1=“系統運行于安全模式” Case 2:Label1=“系統運行于網絡環境下的安全模式” End Select End Sub
|