用Delphi检测特殊键状态

2016-01-29 14:18 52 1 收藏

用Delphi检测特殊键状态,用Delphi检测特殊键状态

【 tulaoshi.com - Delphi 】

 

  在编程中,三个特殊键(NUM LOCK键、CAPS LOCK键、SCROLL LOCK键)是可以通过键盘控制操作的。但有时在应用程序中需要切换大小写输入、数字键输入等功能,这就需要在程序中加入自动判别这些键状态和切换这些键状态的功能。笔者用Delphi4.0编制了一个检测和切换这些特殊键的程序。

  一、创建含有如下控件的窗体:


控件
Caption


form1
用Delphi检测Num Lock键,Caps Lock键,Scroll Lock键的状态


checkbox1
按下Num Lock键


checkbox2
按下Caps Lock键


checkbox3
按下Scroll Lock键


Time1
 


二、编写如下程序:

  unit nums;

  interface

  uses

   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

   ExtCtrls, ComCtrls, StdCtrls;

  type

   TForm1 = class(TForm)

  Timer1: TTimer;

  CheckBox1: TCheckBox;

  CheckBox2: TCheckBox;

  CheckBox3: TCheckBox;

  procedure Timer1Timer(Sender: TObject);

   private

  { Private declarations }

   public

  { Public declarations }

   end;

  var

   Form1: TForm1;

  implementation

  {$R .DFM}

  procedure TForm1.Timer1Timer(Sender: TObject);

  var keystates:TKeyboardState;

  begin

  getkeyboardstate(keystates);

  begin

  if odd(keystates[vk—numlock]) then

  checkbox1.Checked:=true

  //判断是否按下Num Lock钮

  Numlock

  else

  checkbox1.Checked:=false;

  if odd(keystates[vk—CAPITAL]) then

  checkbox2.Checked:=true

  //判断是否按下Caps Lock钮

  else

  checkbox2.Checked:=false;

  if odd(keystates[vk—Scroll]) then

  //判断是否按下Scroll Lock钮

  checkbox3.Checked:=true

  else

  checkbox3.Checked:=false;

  end;

  end;

  end.

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/delphi/) 

来源:https://www.tulaoshi.com/n/20160129/1492967.html

延伸阅读
一 Dll的制作一般分为以下几步: 1 在一个DLL工程里写一个过程或函数 2 写一个Exports关键字,在其下写过程的名称。不用写参数和调用后缀。 二 参数传递 1 参数类型最好与window C++的参数类型一致。不要用DELPHI的数据类型。 2 最好有返回值[即使是一个过程],来报出调用成功或失败,或状态。成功或失败的返回值最好...
标签: PHP
  终于写出个有用的东西了! 能够检测大部分通过代理服务器访问的ip. <?php   //beiji.com   2000.6.17   $ip = getenv("REMOTE_ADDR");   $v = getenv("HTTP_VIA");   $f = getenv("HTTP_X_FORWARDED_FOR");   $c = getenv("...
Windows 2000/XP和2003等支持一种叫做"服务程序"的东西.程序作为服务启动有以下几个好处: (1)不用登陆进系统即可运行. (2)具有SYSTEM特权.所以你在进程管理器里面是无法结束它的. 笔者在2003年为一公司开发机顶盒项目的时候,曾经写过课件上传和媒体服务,下面就介绍一下如何用Delphi7创建一个Service程序. ...
标签: Delphi
  文件关联为我们带来很多的方便。Delphi自带有注册表对象TRegistry,可以通过它取得或改变注册表相关键值的内容。 Function GetAssociatedExec(FileExt: String; var FileDescription, MIMEType: String): String; Var Reg: TRegistry; FileType: String; begin Result := ′′;{函数返回值是打开Fi...
在Windows95/98中,都是使用注册表对系统数据进行管理,有关壁纸的设置数据保存在Hkey_Current_UserControl PanelDesktop的Wallpaper和TileWallpaper 等键值中,只要成功修改了这两个键值,然后发消息给Windows即可更换壁纸。在本例的程序中,使用了一个Tform;两个Tspeedbutton(Speedbutton1用于接受用户的浏览命令,Speedbutton2用于接受用户的...

经验教程

843

收藏

27
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部