基于Delphi的GetSystemMetrics函数应用

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:by_huang
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:GetSystemMetrics函数是Windows API(Application Program Interface)函数中的一员。利用这一函数,可以获取很多关于系统的信息,包括软件系统和硬件系统等,对于面向计算机软、硬件系统检测、维护的应用程序开发有重要的应用价值。本文讨论了Delphi下GetSystemMetrics函数的典型应用,并提供对应的程序验证。
  关键词:Delphi;GetSystemMetrics;系统信息
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)08-10ppp-0c
  
  1 引言
  
  GetSystemMetrics函数是API函数中的一员。利用这一函数,通过传递参数来设置GetSystemMetrics函数所要获取的信息,进而获取关于计算机的信息,包括软件系统和硬件系统等,对于面向计算机软、硬件系统检测、维护的应用程序开发有重要的应用价值。
  
  2 函数解析
  
  GetSystemMetrics中有如下几个重要的参数,分别为:SM_CLEANBOOT、SM_CMOUSEBUTTONS、SM_MOUSEPRESENT、SM_NETWORK和SM_CYSCREEN。这五个参数分别应用于操作系统的启动管理、鼠标按键控制、网络连接服务和显示器管理等。
  2.1 GetSystemMetrics(SM_CLEANBOOT)
  利用GetSystemMetrics(SM_CLEANBOOT),可以获得操作系统的启动模式。具体地:
  返回值:0-操作系统是正常启动模式;
  返回值:1-操作系统是安全模式启动;
  返回值:2-操作系统是网络连接的安全模式启动。
  2.2 GetSystemMetrics(SM_CMOUSEBUTTONS)
  利用GetSystemMetrics(SM_CMOUSEBUTTONS)可以获取计算机鼠标按键的数量。如果它的返回值是0,则说明计算机没有连接鼠标。
  2.3 GetSystemMetrics(SM_MOUSEPRESENT)
  利用GetSystemMetrics(SM_MOUSEPRESENT)可以获取计算机是否与鼠标连接正常的信息。它的返回值是布尔值,具体如下:
  返回值:True-计算机与鼠标连接正常;
  返回值:False-计算机与鼠标连接异常或者未与鼠标连接。
  2.4 GetSystemMetrics(SM_NETWORK)
  利用GetSystemMetrics(SM_NETWORK)可以获得计算机与网络连接的状态。它的返回值也是一个布尔值,具体如下:
  返回值:True-计算机与网络连接正常;
  返回值:False-计算机与网络连接异常或者未与网络连接。
  2.5 GetSystemMetrics(SM_CYSCREEN)
  利用GetSystemMetrics(SM_CXSCREEN/SM_YSCREEN)可以获得计算机显示器的分辨率。该函数的返回值是Longint型。其中:SM_CXSCREEN是显示器的水平分辨率;SM_CYSCREEN是显示器的垂直分辨率。
  
  3 应用举例
  
  3.1 应用举例一
  利用GetSystemMetrics(SM_CLEANBOOT)获取操作系统启动状态。在设计环境的主窗体上添加如下控件: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;
  程序运行效果如图1所示。
  
  图2 应用SM_NETWORK参数的程序运行效果
  
  3.3 应用举例三
  利用GetSystemMetrics(SM_CXSCREEN)/(SM_CYSCREEN)获取显示器分辨率信息。在设计环境的主窗体上添加如下控件: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;
  程序运行效果如图3所示。
  
  图4 应用SM_CMOUSEBUTTONS参数的程序运行效果
  
  4 总结
  
  GetSystemMetrics函数除上面所介绍的之外还有很多其它重要应用,比如:利用GetSystemMetrics(SM_CXFRAME)/(SM_CYFRAME)获取窗体框架的宽度和高度;利用GetSystemMetrics(SM_CYCAPTION)获取窗体的标题信息;利用GetSystemMetrics(SM_DBCSENABLED)判断操作系统的语言等。该函数对用户获取、了解计算机软件、硬件信息有着十分重要的作用。
  
  参考文献:
  [1]John Ayres.The Tomes of Delphi (tm) Win32 Core API Windows 2000 Edition[M].Wordware Publishing,2001.
  [2]谭燕,赵磊,李之明.Delphi高级辅助工具精解[M].中国铁道出版社,2003.
其他文献
摘要:在Intel未来教育的先进理念的指引下,从基于局域网的网络课件的特征与内涵出发,以建构主义与“双主模式”教学理论为指导,利用局域网与互联网的优势,介绍设计开发新型网络课件的方法,并结合实际教学过程中的具体例子,提出相应的解决策略。  关键词:Intel未来教育;双主模式;网络课件   中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)32-1267-02  Netw
摘要:本文在对Java多线程分析的基础上,针对如何实现多线程,如何进行同步,如何管理多线程等问题进行了简单的阐述。  关键词:线程;多线程;线程组  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)19-30181-03  Analyse Shallowly Java Multi-threading Mechanism  WANG Jun-yu, WANG Xian-h
摘要:无线传感器网络是由部署在监测区域内大量的廉价微型传感器结点组成,具有传感器节点密度高,网络拓扑变化频繁,以及节点的功率、计算能力和数据存储能力有限等特点。该文介绍了ZigBee网络与GSM/GPRS网络相结合实现远程监测的无线传感器网络的软件与硬件总体设计方法。  关键词:传感器网络;数据融合;网络协调器  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)33-1
摘要:通过理论有与实例的比较,对目前比较流行的两种面向对象的编程语言C 与Java从7个方面作一比较,希望为程序的设计与教学提供帮助与选择。  关键词:C ;JAVA;程序设计;编程语言  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2008)21-30453-02    Comparison of the Object-oriented Procedure Count
摘要:XML能够使用得Internet上的数据交换变得更方便,XML与数据库一样,都能够作为信息存储的途径。当数据量不大的时候,比如完成一个在线备忘录,XML作为数据存储具有关系数据库所无法比拟的优势。在asp.net中能够利用.net类库提供的类及方法轻松地构建一个基于XML的在线备忘录。  关键词:XML;数据库;数据存储;asp.net;在线备忘录  中图分类号:TP311文献标识码:A文章
一、导入  屏显第一幅图片。  生:含羞草。  师:有点像。柔柔弱弱的。但不是,这是紫茎泽兰。再来看看来自海底世界的动物(屏显第二幅图片)。  生:水母。  (师肯定并表扬,再明确,这是“冠状水母”。再呈现学生熟悉的小龙虾图片)  师:这三位朋友,有一个共同的名字,叫“生物入侵者”。打开书本,我们先看第一段文字,找到生物入侵者的概念。  二、从概念入手了解生物入侵者的危害  (屏显生物入侵者的概念
习作教学一直是小学语文教学的难点,尤其是统编教材全面投入使用后,面对新的教学内容,很多教师感到不适应。对此,我们在学习借鉴当前作文教学模式的基础上,结合语文学科特点和教学实际,提出了“四步循环”习作教学模式。  “四步循环”习作教学模式继承了传统作文教学模式的优点,把学生学习方式的优化、教师教学方式的改进、教师关注学生长远发展的评价作为重点,优化了课堂教学结构,体现了新课程强调的“自主、合作、探究
摘要:通过分析各种入侵检测系统的特点,提出了一种基于移动Agent和主从数据库模式的分布式入侵检测系统的模型MADIDS,实现了基于该模型的分布式入侵检测系统,该模型中的Agent相互独立、互相协作,并有效的对数据库进行层次划分,提高了系统的效率、健壮性、可扩展性和可靠性。  关键词:入侵检测;移动Agent;MYSQL  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008
摘要:传统的《C程序设计》教学方法存在很多不足,提出一种新的基于案例的教学方法。该方法采用“案例-理论和概念”的教学模式,具有突出实践性,体现真实性,实现互动性,发挥学生主体性等显著特点。案例设计是该方法的前提和基础,指出了设计案例时需注意的问题,并结合实例进行了说明。案例教学可极大提高学生学习的兴趣,增强学生在课堂上的参与感,改变原来课堂“满堂灌”现象,从而提高教学质量。  关键词:C程序设计;
摘要:ADO.NET是微软针对ADO的缺陷而重新设计的一种全新的数据库访问技术。阐述了ADO.NET的结构与数据模型:数据提供程序和数据集。探讨了利用ADO.NET技术访问数据库访问的方式,同时给出了采用C#语言所实现的ADO.NET数据库访问技术在数据库中编程中的具体实现方案。  关键词:C#语言;ADO.NET;数据库访问  中图分类号:TP311文献标识码:A文章编号:1009-3044(2