Entwickler-Ecke
Windows API - Mit SendMessage gesendete Nachricht empfangen
Ruditschka - Mi 14.05.03 12:45
Titel: Mit SendMessage gesendete Nachricht empfangen
Wahrscheinlich ist es nur eine einfache Anfängerfrage, aber im Moment komm ich ohne nicht weiter...
Wie kann ich Messages empfangen, die mit SendMessage gesendet wurden und mit RegisterWindowMessage registriert wurden?
Einfach eine Prozedur mit der Direktive message zu nehmen klappt nicht, da Delphi hinter message einen Konstantenausdruck erwartet :(
Motzi - Mi 14.05.03 12:58
Die Methode WndProc überschreiben...
AndyB - Mi 14.05.03 12:59
Du musst die Methode
WndProc überschreiben, durch die alle Botschaften geschleust werden.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| protected procedure WndProc(var Message: TMessage); override; end;
procedure TForm1.WndProc(var Message: TMessage); begin if Message.Msg = WM_MYMESSAGE then begin ShowMessage('Botschaft empfangen'); Message.Result := 1; // irgendwas an SendMessage zurückgeben. end else inherited; end; |
Tana´Ri - Mi 14.05.03 13:01
entweder du nutzt die WndProc, dies ist die funktion in der Messages verarbeitet werden, Threads besitzen keine solche Funktion (nur Form); du kannst ja mit registerwindowmessage einen eindeutigen messagetyp deklarieren somit könntest du über PeekMessage und GetMessage versuchen sie in der Windowsnachrichtenwarteschlange zu finden.
Ruditschka - Mi 14.05.03 23:36
Ich habe die Prozedur von AndyB mal eingebaut. Damit empfange ich jedoch nicht meine Nachricht (zumindest wird sie nicht rausgefiltert).
Durch eine Ausgabe mit IntToStr weiß ich, dass sowohl im Hook selber (Sender der Nachricht) als auch in meiner Form die selbe Message-ID verwendet wird. Wenn ich das ganze mit einer festen Konstante á la "WM_USER + $01" und eigener Prozedur mit message-Direktive mache, klappt alles (meistens, komischerweise wird nicht jeder Mausklick vom MouseHook abgefangen ?!?).
Hat noch Jemand eine Idee?
Gruß
Christoph
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!