ローカルキーフックだけですが,
Halbow 資料館に掲載しているコンポーネントを使用すると簡単です.
まっ,あれですね.とくかく何でもやってみることです.ハイ.
敷居が高いとか低いとか,
足が短いから敷居をまたげないとか言っていないで... (^^;
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, KeyHookUnit;
type
TForm1 = class(TForm)
Panel1: TPanel;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
KeyHook1: TKeyHook;
procedure KeyHook1KeyDown(virtualkey: Cardinal);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
//=============================================================================
// キーフック開始
//=============================================================================
procedure TForm1.Button1Click(Sender: TObject);
begin
KeyHook1.Enabled := True;
end;
//=============================================================================
// キーフック終了
//=============================================================================
procedure TForm1.Button2Click(Sender: TObject);
begin
KeyHook1.Enabled := False;
end;
//=============================================================================
// KeyHook1のOnKeyDownイベント処理
//=============================================================================
procedure TForm1.KeyHook1KeyDown(virtualkey: Cardinal);
var
LText : string;
begin
if Edit1.Focused then begin
LText := Format(' %.2d ($%.2x)', [virtualkey, virtualkey]);
Panel1.Caption := Chr(virtualkey) + LText;
end;
end;
end.
|