妙用GetSystemMetrics函數(shù)
發(fā)表時(shí)間:2023-07-28 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]在Windows9x編程過程中,我們經(jīng)常需要了解當(dāng)前系統(tǒng)的運(yùn)行狀態(tài)。例如,如果Win9x運(yùn)行于安全模式,那么多媒體等部件可能無(wú)法正確運(yùn)行。程序中有必要對(duì)此做相應(yīng)處理,以提高程序安全性,增強(qiáng)系統(tǒng)的適應(yīng)...
在Windows9x編程過程中,我們經(jīng)常需要了解當(dāng)前系統(tǒng)的運(yùn)行狀態(tài)。例如,如果Win9x運(yùn)行于安全模式,那么多媒體等部件可能無(wú)法正確運(yùn)行。程序中有必要對(duì)此做相應(yīng)處理,以提高程序安全性,增強(qiáng)系統(tǒng)的適應(yīng)能力。VB中沒有直接提供此類控制或函數(shù),但是我們可以通過API函數(shù)GetSystemMetrics輕松地實(shí)現(xiàn)對(duì)Win運(yùn)行模式的判斷。
GetSystemMetrics函數(shù)原型如下:
Public Declare Function GetSystemMetrics Lib “user32” (ByVal nIndex As Long) As Long
其中nIndex的不同取值可以使該函數(shù)實(shí)現(xiàn)不同的功能。例如返回Win桌面中各種顯示單元的寬度和高度、是否安裝了鼠標(biāo)、是否調(diào)換了鼠標(biāo)左右鍵的定義等。
當(dāng)nIndex = 67(SM_CLEANBOOT)時(shí),該函數(shù)的返回值表示W(wǎng)indows9x的當(dāng)前運(yùn)行模式。
在以下的示例中我們可以看到GetSystemMetrics函數(shù)的用法和作用。首先在BAS模塊文件中做如下說明:
Option Explicit
Public Const SM_CLEANBOOT = 67
Public Declare Function GetSystemMetrics Lib “user32” (ByVal nIndex As Long) As Long
在窗體中添加標(biāo)簽Label1和命令按鈕Command1,設(shè)置如下代碼:
Private Sub Command1_Click()
Select Case GetSystemMetrics(SM_CLEANBOOT)
Case 0:Label1=“系統(tǒng)運(yùn)行于正常模式”
Case 1:Label1=“系統(tǒng)運(yùn)行于安全模式”
Case 2:Label1=“系統(tǒng)運(yùn)行于網(wǎng)絡(luò)環(huán)境下的安全模式”
End Select
End Sub