用Delphi检测特殊键状态
2000-08-14 15:44:02
在编程中,三个特殊键(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.
摘自《赛迪网》 褚健耘/文 |
404 Not Found
404 Not Found
nginx
|
|