⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 delphi

📁 该软件是Delphi关于API的一个使用! 有详细说明文档和程序实例!
💻
字号:
文章题目:Delphi编程之“GetSystemMetrics”函数

【简  介】

    GetSystemMetrics函数是Windows API函数中的一员,利用这一函数我们可以获取很多关于系统
的信息(包括软件系统和硬件系统)。我们可以通过传递参数来设置GetSystemMetrics函数所要获取
的信息。

【使用方法】

(1)GetSystemMetrics(SM_CLEANBOOT)
    利用GetSystemMetrics(SM_CLEANBOOT),我们可以获得操作系统的启动模式。具体地:
    返回值:0-操作系统是正常启动模式;
    返回值:1-操作系统是安全模式启动;
    返回值:2-操作系统是网络连接的安全模式启动。
(2)GetSystemMetrics(SM_CMOUSEBUTTONS)
    利用GetSystemMetrics(SM_CMOUSEBUTTONS)可以获取计算机鼠标按键的数量。如果它的返回值是
0,则说明计算机没有连接鼠标。
(3)GetSystemMetrics(SM_MOUSEPRESENT)
    利用GetSystemMetrics(SM_MOUSEPRESENT)可以获取计算机是否与鼠标连接正常的信息。它的返回
值是布尔值,具体如下:
    返回值:True-计算机与鼠标连接正常;
    返回值:False-计算机与鼠标连接异常或者未与鼠标连接。
(4)GetSystemMetrics(SM_NETWORK)
    利用GetSystemMetrics(SM_NETWORK)可以获得计算机与网络连接的状态。它的返回值也是一个布
尔值,具体如下:
    返回值:True-计算机与网络连接正常;
    返回值:False-计算机与网络连接异常或者未与网络连接。
(5)GetSystemMetrics(SM_CYSCREEN)
    利用GetSystemMetrics(SM_CXSCREEN/SM_YSCREEN)可以获得计算机显示器的分辨率。该函数的返
回值是Longint型。其中:SM_CXSCREEN是显示器的水平分辨率;SM_CYSCREEN是显示器的垂直分辨率。

【应用举例】

举例1:利用GetSystemMetrics(SM_CLEANBOOT)获取操作系统启动状态。
    步骤一:启动Delphi,新建一个工程;
    步骤二:在主窗体上添加如下控件:4个CheckBox控件和1个Button控件。4个CheckBox控件的Caption
属性分别设为:“正常模式”、“安全模式”、“安全模式,并且具备网络功能”、“系统启动有问题”
。Button控件的Caption属性设为“检测”;
    步骤三:在Button控件中编写如下代码:
  case(GetSystemMetrics(SM_CLEANBOOT)) of
    0:CheckBox1.Checked:=True; //正常模式
    1:CheckBox2.Checked:=True; //安全模式
    2:CheckBox3.Checked:=True; //安全模式且具备网络功能
    else
    CheckBox4.Checked:=True; //系统启动有问题
  end;

举例2:利用GetSystemMetrics(SM_NETWORK)测试网络连接状态。
    步骤一:启动Delphi,新建一个工程;
    步骤二:在主窗体上添加如下控件:2个CheckBox控件和1个Button控件。2个CheckBox控件的Caption
属性分别设为:“网络连接正常”、“网络连接异常”。Button控件的Caption属性设为“检测”;
    步骤三:在Button控件中编写如下代码:
  if GetSystemMetrics(SM_NETWORK) AND $01 = $01
  then  CheckBox5.Checked:=True //网络连接正常
  else  CheckBox6.Checked:=True; //网络连接异常

举例3:利用GetSystemMetrics(SM_CXSCREEN)/(SM_CYSCREEN)获取显示器分辨率信息。
    步骤一:启动Delphi,新建一个工程;
    步骤二:在主窗体上添加如下控件:2个Label控件和1个Button控件;Button控件的Caption属性
设为“检测”;
    步骤三:在Button控件中编写如下代码:
var
  x,y:longint; //存储显示器水平、垂直分辨率值
  a:string;
begin
  x := GetSystemMetrics(SM_CXSCREEN);
  Str(x,a);
  Label1.Caption := '显示器水平分辨率:' + a;
  y := GetSystemMetrics(SM_CYSCREEN);
  Str(y,a);
  Label2.Caption := '显示器垂直分辨率:' + a;
end;

举例4:利用GetSystemMetrics(SM_CMOUSEBUTTONS)检测鼠标类型。
    步骤一:启动Delphi,新建一个工程;
    步骤二:在主窗体上添加如下控件:1个Label控件和1个Button控件;Button控件的Caption属性
设为“检测”;
    步骤三:在Button控件中编写如下代码:
  case(GetSystemMetrics(SM_CMOUSEBUTTONS)) of
    0: Label3.Caption:='鼠标异常'; //鼠标异常时
    1: Label3.Caption:='鼠标有1个按键'; //单键鼠标
    2: Label3.Caption:='鼠标有2个按键'; //双键鼠标
    3: Label3.Caption:='鼠标有3个按键'  //三键鼠标
  end;

【编译运行】

    代码编写好后,在Delphi中编译运行。然后分别点击“检测”按钮,获取操作系统启动状态、网络连接状态、显示器分辨率、鼠标类型的信息。程序运行效果如图1所示。

【总    结】

    GetSystemMetrics函数除上面所介绍的之外还有很多其它重要应用,比如:利用GetSystemMetrics(SM_CXFRAME)/(SM_CYFRAME)获取窗体框架的宽度和高度;利用GetSystemMetrics( SM_CYCAPTION)获取窗体的标题信息;利用GetSystemMetrics(SM_DBCSENABLED)判断操作系统的语言等。可以说,它对我们获取、了解计算机软件、硬件信息有着十分重要的作用。
    注:以上程序在Delphi 7.0/2005编译运行通过。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -