用Delphi检测特殊键状态
作者: 来源:不详 添加时间:2006-5-25 21:24:37| 在编程中,三个特殊键(NUM LOCK键、CAPS LOCK键、SCROLL LOCK键)是可以通过键盘控制操作的。但有时在应用程序中需要切换大小写输入、数字键输入等功能,这就需要在程序中加入自动判别这些键状态和切换这些键状态的功能。笔者用Delphi4.0编制了一个检测和切换这些特殊键的程序。 一、创建含有如下控件的窗体:
二、编写如下程序: 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. |
站内搜索