Hallo !
Ich wollte die WndProc einer fremden Application subclassen, aber irgendwie funzt das net.
Also die neu definierte NewWinProc wird niemals aufgerufen.
Es passiert einfach gar nix ..!
Wo liegt der Fehler ?
Danke !
Delphi-Quellcode:
var
OldWinProc: Integer;
////////////////////////////////////////////////////////////////////////////////
function NewWinProc(hWnd: HWND; Msg: WORD; wParam: WORD; lParam: LONGINT):
LONGINT;
var
MessageProcessed: Boolean;
begin
MessageProcessed := False;
// case Msg of
// end; {end of case Msg }
if not MessageProcessed then
Result := CallWindowProc(@OldWinProc,hWnd,Msg,wParam,lParam)
else
Result := 0;
end;
/////////////////////////////////////////////////////////////////////////////////
procedure SubClassWin(hWnd: HWND);
begin
OldWinProc := SetWindowLong(hWnd,GWL_WNDPROC,integer(@NewWinProc));
end;
/////////////////////////////////////////////////////////////////////////////////
procedure UnSubClassWin(hWnd: HWND);
begin
SetWindowLong(hWnd,GWL_WNDPROC,OldWinProc);
end;
/////////////////////////////////////////////////////////////////////////////////
procedure TForm1.Button1Click(Sender: TObject);
var h : hwnd;
begin
h := findwindow('notepad', nil);
if h > 0 then subclasswin(h);
end;