Alles klappt soweit perfekt, danke erstmal. Nur meinen eigenen
Handle "zwischenschieben" will nicht so ganz, also ich habe z.B. jetzt
Delphi-Quellcode:
WindowHandle : HWND;
MessageHandle : LongInt;
WindowHandle ist der
Handle von der Applikation XY und Message
Handle ist GetWindowLong(WindowHandle, GWL_WNDPROC);
Jetzt hänge ich bei:
SetWindowLong( MessageHandle,
bzw. ich habe ja noch nicht einmal eine Prozedur um die MESSAGE abzufangen. Wie gesagt, ist das erstemal, dass ich mich damit befasse. :/
Ich dachte da in Richtung
Delphi-Quellcode:
procedure MessageHandler(var Message: TMessage);
begin
case Message.Msg of
WM_IRGENDWAS:
begin
{irgendwas}
end;
end;
vielen Dank bis jetzt
Florian
EDIT
================
Okay, bin jetzt ein wenig weiter
Delphi-Quellcode:
function InjectOwnHandle(): boolean;
begin
LastProc := Pointer(GetWindowLong(WindowHandle, GWL_WNDPROC));
SetWindowLong(WindowHandle, GWL_WNDPROC, Integer(@WindowProc));
end;
function WindowProc(H : HWND; Msg : Cardinal; wParam, LParam : Cardinal) : Integer; stdcall;
Begin
If Msg = XXX Then begin
end;
Result := CallWindowProc(LastProc, H, Msg, wParam, LParam);
End;
und bei Destroy habe ich
SetWindowLong(WindowHandle, GWL_WNDPROC, Integer(LastProc));
drinn.
Nur es kommt ein
Fehler bei der InjectOwnHandle Funktion...mein Compiler sagt, er erwartet eine Variable???