Текущий архив: 2006.12.03;
Скачать: CL | DM;
Вниз
Отловить нажатие кнопок на клавиатуре Найти похожие ветки
← →
Монгол (2006-11-15 17:47) [0]Помогите чайнику!!!Как можно отловить нажатие кнопок на клавиатуре и сохранить их в текстовый файл?
Нужен пример. Заранее спасибо.
← →
Array © (2006-11-15 17:51) [1]google + hook
http://delphiworld.narod.ru/base/set_hook.html
← →
Rouse_ © (2006-11-15 17:53) [2]Из Мемо в файл думаю сумеешь скинуть?
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
end;
var
Form1: TForm1;
implementation
var
hHook: THandle;
{$R *.dfm}
function LowLevelKeyboardProc(nCode: Integer;
WParam: WPARAM; LParam: LPARAM): LRESULT stdcall;
type
PKbdDllHookStrukt = ^TKbdDllHookStrukt;
_KBDLLHOOKSTRUCT = record
vkCode: DWORD;
scanCode: DWORD;
flags: DWORD;
time: DWORD;
dwExtraInfo: PDWORD;
end;
TKbdDllHookStrukt = _KBDLLHOOKSTRUCT;
const
RPT_WPARAM_DATA = "Keyboard message = %s ";
RPT_LPARAM_DATA = "scan code = %s [%d]";
var
StrResult: String;
begin
StrResult := "";
if nCode = HC_ACTION then
Result := CallNextHookEx(hHook, nCode, WParam, LParam);
case WParam of
WM_KEYDOWN: StrResult := Format(RPT_WPARAM_DATA, ["WM_KEYDOWN"]);
WM_KEYUP: StrResult := Format(RPT_WPARAM_DATA, ["WM_KEYUP"]);
WM_SYSKEYDOWN: StrResult := Format(RPT_WPARAM_DATA, ["WM_SYSKEYDOWN"]);
WM_SYSKEYUP: StrResult := Format(RPT_WPARAM_DATA, ["WM_SYSKEYUP"]);
end;
StrResult := StrResult + Format(RPT_LPARAM_DATA, [
Chr(PKbdDllHookStrukt(LParam)^.vkCode), PKbdDllHookStrukt(LParam)^.vkCode]);
Form1.Memo1.Lines.Add(StrResult);
end;
procedure TForm1.FormCreate(Sender: TObject);
const
WH_KEYBOARD_LL = 13;
begin
hHook := SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, hInstance, 0);
if hHook = 0 then RaiseLastOSError;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
if not UnhookWindowsHookEx(hHook) then RaiseLastOSError;
end;
end.
Страницы: 1 вся ветка
Текущий архив: 2006.12.03;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.037 c