Показать сообщение отдельно
  #2  
Старый 11.07.2008, 01:11
Аватар для notricky
notricky notricky вне форума
Прохожий
 
Регистрация: 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)?
Ответить с цитированием