Also:
SetWindowText funzt, d.h. der
Handle wurde richtig gefunden...nur scheint SetWindowLong nicht wirklich zu funktionieren...auch
OldWndProc := TWndProc(Pointer(GetWindowLong(WindowHandle, GWL_WNDPROC)));
nicht, denn wenn es um
if @OldWndProc <> nil then
geht, so wird die Kondition nicht erfüllt, d.h. OldWndProc ist nil...
Meine Funktion schaut so aus:
Delphi-Quellcode:
function TRONPSTransClass.RestoreHandle():boolean;
begin
if @OldWndProc <> nil then
begin
SetWindowLong( WindowHandle, GWL_WNDPROC, LongInt(@OldWndProc));
SetWindowText( WindowHandle, PChar('...'));
Result := true;
end;
end;
function TRONPSTransClass.InjectOwnHandle(): boolean;
begin
if(isWindow( WindowHandle )) then
begin
RestoreHandle();
OldWndProc := TWndProc(Pointer(GetWindowLong(WindowHandle, GWL_WNDPROC)));
if @OldWndProc <> nil then
begin
SetWindowLong( WindowHandle, GWL_WNDPROC, LongInt(@NewWndProc));
SetWindowText( WindowHandle, PChar('...'));
end;
end;
end;
siehe
http://www.delphipraxis.net/internal...ct.php?t=73357