Форум: "WinAPI";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];
ВнизРеализация HOOK Найти похожие ветки
← →
Alex_s (2004-09-16 12:34) [0]Уважаемые мастера!
Помогите плз разобраться с созданием ловушек. Почему у меня при нажатии любой клавиши в переменных code,wparam,lparam всегда одни и те же значения?
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Memo1: TMemo;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
SysHook:HHook=0;
implementation
{$R *.dfm}
procedure SysKeyProc(code:integer;wParam:word;lParam:longint);
var Key_Kod:word;
begin
Form1.Edit1.Text:=IntToStr(code);
Form1.Edit2.Text:=IntToStr(WParam);
Form1.Edit3.Text:=IntToStr(LParam);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
SysHook:=SetWindowsHookEx(WH_Keyboard,@SysKeyProc,HInstance,0);
if SysHook<>0 then
begin
Memo1.Lines.Clear;
Memo1.Lines.Add("Есть хук");
end else
begin
Memo1.Lines.Clear;
Memo1.Lines.Add("Ошибка");
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if UnHookWindowsHookEx(SysHook) then
begin
Memo1.Lines.Clear;
Memo1.Lines.Add("Нет хука");
end else
begin
Memo1.Lines.Clear;
Memo1.Lines.Add("Ошибка");
end;
end;
end.
← →
MBo © (2004-09-16 13:18) [1]в код не смотрел, но SysKeyProc должно быть со спецификатором STDCALL!
← →
Alex_s (2004-09-16 13:31) [2]Спасибо MBo!
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.037 c