在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
……