Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.17;
Скачать: CL | DM;

Вниз

Реализация 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 вся ветка

Текущий архив: 2004.10.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.024 c
8-1090581322
suharew
2004-07-23 15:15
2004.10.17
видеоЗахват


4-1094849129
Destroyer
2004-09-11 00:45
2004.10.17
Как найти адрес нужный памяти в чужом приложении?


1-1096964908
Fishka
2004-10-05 12:28
2004.10.17
"Не показывать больше это окно"


3-1095652006
korvin
2004-09-20 07:46
2004.10.17
Компонет печати или запрос?


4-1095008025
Solo
2004-09-12 20:53
2004.10.17
Вызов функции из другого процесса