📄 delphi
字号:
文章题目: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 + -