Главная страница
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.036 c
4-1094849129
Destroyer
2004-09-11 00:45
2004.10.17
Как найти адрес нужный памяти в чужом приложении?


3-1095770364
Relaxxx
2004-09-21 16:39
2004.10.17
Как мне сделать коньюнцию двух полей в SQL Acces??


14-1095958723
Безымянный
2004-09-23 20:58
2004.10.17
Нужна помощь с ноутбуком.


4-1094799173
nester
2004-09-10 10:52
2004.10.17
Как можно узнать когда закончила запускаться внешняя программа?


8-1090686879
fess
2004-07-24 20:34
2004.10.17
Компоненты для работы с графикой