在编程中,三个特殊键(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.
用Delphi检测特殊键状态
用Delphi检测特殊键状态,用Delphi检测特殊键状态