Ungefähr so:
Delphi-Quellcode:
var
HookHandle: Cardinal;
function GetMsgProc(code: integer; wParam: WPARAM; lParam: LPARAM): LResult; stdcall;
begin
if code = HC_ACTION then
with Windows.PMsg(lParam)^ do
if message = WM_WINDOWPOSCHANGING then
begin
end;
Result := CallNextHookEx(HookHandle, Code, wParam, lParam);
end;
...
begin
HookHandle := SetWindowsHookEx(WH_GETMESSAGE, GetmsgProc, hInstance, 0);
end;
[Nachtrag]
DLL kannst du dir sparen wenn's nur um dieselbe Anwendung geht.
[Noch'n Nachtrag]
Mit der Funktion
function FindControl(Handle: HWnd): TWinControl;
aus der
Unit Controls kriegst du dann zu dem Fensterhandle das Control/die Form (falls vorhanden).