Вниз
Скачать: CL | DM;

Мастера проблема (опять HOOK), вернее DLL   Найти похожие ветки 

 
Stormick ©   (2002-01-28 23:22) [0]

Уважаемые мастера помогите разобраться с Hook - ом . Уже с недели две страдаю. Как мне передать в свою программу сообщение из DLL.
Делаю так:

library hook_dll;

uses Windows, Messages;

var
SysHook : HHook = 0;
Wnd : Hwnd = 0;

function SysMsgProc(code : integer; wParam : word; lParam : longint) : longint; stdcall;
begin
CallNextHookEx(SysHook, Code, wParam, lParam);
if code = HC_ACTION then
begin
if TMsg(Pointer(lParam)^).message = WM_MOUSEMOVE then
begin
Wnd:=FindWindow("TForm1","Form1"); {!!!!!!!!!!!!!!!!!!!!!!!!! Wnd=0 почему ????}
if wnd <> 0 SendMessage(Wnd,WM_USER,0,0);
end;
end;
end;

procedure hook(switch : Boolean) export; stdcall;
begin
if switch=true then
begin
SysHook := SetWindowsHookEx(WH_GETMESSAGE, @SysMsgProc, HInstance, 0);
end
else
begin
UnhookWindowsHookEx(SysHook);
SysHook := 0;
end;
end;

exports hook;

begin
end.


Сама прога

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
procedure WMUSER(var T:TMessage);message WM_USER;
end;

var
Form1: TForm1;
Hdll : HWND;
hook: procedure (Switch : Boolean); stdcall;

implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);

begin
Hdll:= LoadLibrary(PChar("hook_dll.dll"));
if Hdll > HINSTANCE_ERROR then @hook:=GetProcAddress(Hdll, "hook")
hook(true);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
hook(false);
FreeLibrary(Hdll);
end;

procedure TForm1.WMUSER(var T:TMessage);
begin
MessageBox(Handle,"WM_USER","Message",MB_OK);
end;
end.

Почему FindWindow находящаяся в DLL не находит моё окно. Помогите очень надо.
Лучше на мыло mailto:stormick@mail.ru



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.009 c
1-90907
IronHawk
2002-03-15 22:46
2002.03.28
Как в StringGrid забросить данные из *.txt файла ?


1-90875
-=Keith Flint=-
2002-03-17 14:52
2002.03.28
Люди добрые, спасите!


7-91088
Pat
2001-12-26 21:38
2002.03.28
FAR. Список процессов.


3-90773
AlexPro!
2002-03-01 17:59
2002.03.28
Paradox - универсальный пароль !


7-91082
Fellomena
2001-12-20 12:37
2002.03.28
GetWindow Vs CreateToolhelp32Snapshot - search, detect and destroy...




   Наверх