Главная страница
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
Время: 1.017 c
14-47755
Val
2002-06-12 12:39
2002.07.15
Дао Программирования


4-47869
Serd_hhc
2002-05-12 07:33
2002.07.15
Что это такое?


7-47837
AnSav
2002-04-19 20:16
2002.07.15
Есть ли возможность в Win9x скрыть папки?


3-47216
Elvira
2002-06-20 00:42
2002.07.15
Можно ли делать запрос из TTable используя TQuery?


14-47669
Андриянов Денис
2002-06-09 19:04
2002.07.15
Есть ли такая библиотека которая делает возмо