Einzelnen Beitrag anzeigen

Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#1

Subclassing einer fremden Application, warum funzt das net ?

  Alt 9. Nov 2003, 12:15
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;
  Mit Zitat antworten Zitat