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

Вниз

SetWindowHookEx для всех потоков в системе.   Найти похожие ветки 

 
KiberArt ©   (2002-05-14 22:27) [0]

Да SetWindowHookEx(...@KeyBoardProc...) работает, все OK, но только для потока моей проги. А я хочу для всех потоков. Сделал, вроде должно работать, а почему-то не работает. Ниже приведены мои исходники exe и dll. Наверное, как обычно, что-нибудь перепутал :) Может кто подскажет ошибку.

program Project1;

uses
Forms,Windows,
Unit1 in "Unit1.pas" {Form1};

{$R *.res}

var
hDll:THandle;
hook:HHOOK;

begin
Application.Initialize;
hDLL := LoadLibrary(PChar("KeySpyDll.dll"));
hook := SetWindowsHookEx(WH_KEYBOARD,GetProcAddress(hDLL,PChar("KeyboardProc")),hDLL,0);
Application.ShowMainForm := false;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.



library MyDll;

uses
SysUtils,Windows;

{$R *.res}

function KeyboardProc(code:integer;WPARAM:wParam;LPARAM:lParam):integer;stdcall;
var f:system.text;
begin

//Чего мне надо
//result := CallNextHookEx(hook, code, wParam, lParam) - еще одна проблема

end;
end.

Насчет еще одной поблемы. Чтобы сработала CallNextHookEx, нужно первым параметром передать хэндл текущего хука, т.е. результат SetWindowsHookEx, как его передать в DLL?


 
Fellomena   (2002-05-15 12:20) [1]

hook := SetWindowsHookEx(WH_KEYBOARD,GetProcAddress(hDLL,PChar("KeyboardProc")),hDLL,0); - ошибка;

SetWindowsHookEx(WH_KEYBOARD, @KeyboardProc, HInstance,0); - это делается в самой DLL, а не в коде проекта;


Очень рекомендую статью: "Hooks - аспекты реализации".
См. этот сайт или
http://www.delphikingdom.com/mastering/hook.htm



Страницы: 1 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.023 c
6-47627
LiNkS
2002-04-24 13:57
2002.07.15
NetSessionEnum


1-47388
ЮРИЙ_К
2002-06-26 13:09
2002.07.15
Передача фокуса форме 8-(


6-47625
Сергей Л.
2002-04-26 21:29
2002.07.15
Как проверить открыт ли порт на удаленном компютере


14-47794
Snake2000
2002-06-14 06:29
2002.07.15
TV-тюнер без FM-приемника


1-47461
serd_hhc
2002-07-03 15:30
2002.07.15
ICO and EXE?