
11.07.2008, 01:11
|
 |
Прохожий
|
|
Регистрация: 09.07.2008
Сообщения: 13
Репутация: 10
|
|
Код:
library HookDll;
uses
SysUtils,dialogs, Windows, Messages, Graphics, Classes;
var
TheHook: HHook = 0;
function WMPaintHook(Code:Integer; WParam:LongInt; LParam:LongInt):LongInt; stdcall;
var
C: TCanvas;
wnd: HWND;
t: array[0..255] of char;
s: string;
begin
if (Code < 0) then
begin
Result := CallNextHookEx(TheHook,Code,WParam,LParam);
exit;
end
else
if TMsg(Pointer(LParam)^).Message = WM_PAINT then
begin
WND := TMsg(Pointer(LParam)^).hwnd;
if WND <> 0 then
begin
ShowMessage('Åñòü êîíòàêò');
//
end;
end;
Result := CallNextHookEx(theHook, Code, wParam, lParam);
end;
Procedure SetHook(SetupHook: boolean); stdcall;
begin
if SetupHook then
TheHook := SetWindowsHookEx(WH_CALLWNDPROCRET,@WMPaintHook,HInstance,0)
else
UnhookWindowsHookEx(TheHook);
end;
exports
SetHook index 1 name 'SetHook';
{$R *.res}
begin
end.
Такой вот получился код. Только как теперь по полученному WND найти дескриптор главного окна, чтобы потом найти заголовок (Caption)?
|