妙用GetSystemMetrics函数

发表于:2007-07-14来源:作者:点击数: 标签:
在 Windows 9x编程过程中,我们经常需要了解当前系统的运行状态。例如,如果Win9x运行于 安全 模式,那么多媒体等部件可能无法正确运行。程序中有必要对此做相应处理,以提高程序安全性,增强系统的适应能力。 VB 中没有直接提供此类控制或函数,但是我们可
  在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

原文转自:http://www.ltesting.net