在編程中,三個特殊鍵(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.