type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
function KeyboardHook(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LResult;STDCALL;
var
Form1: TForm1;
WinHook: HHOOK;
implementation
{$R *.dfm}
function KeyboardHook(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LResult;
begin
if (nCode>-1) then
begin
if wparam=VK_SHIFT then
showmessage('your press the shift');
result:=0;
end
else
Result := CallNextHookEx(WinHook, nCode, wParam, lParam);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
WinHook:=SetWindowsHookEx(WH_KEYBOARD, @KeyboardHook, 0, GetCurrentThreadID);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
UnhookWindowsHookEx(WinHook);
end;