Главная страница
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
3-47142
jen_bond
2002-06-24 13:40
2002.07.15
DBComboBox


1-47395
Shrek
2002-07-02 16:32
2002.07.15
TShellTreeView


1-47471
ValeX
2002-07-03 16:34
2002.07.15
мат. вопрос


1-47332
easy
2002-06-27 09:18
2002.07.15
Cls


6-47624
Konsul
2002-04-28 14:20
2002.07.15
Звук через локальную сеть