Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Nachricht global ausfiltern, noch vor dem Start des Hauptprogrammes

  Alt 27. Jun 2016, 19:20
Hallo,

Ja, der Erfinder von TApplicationEvents sollte dafür erschossen werden.
Da erfindet der etwas, damit es keine Konflikte mehr gibt und dann produziert das Ding selber Konflikte mit Altcode.
hm, ist da mein Code gemeint?

1, 4: Application.OnMessage wird doch vor der Verarbeitung (IsPreProcessMessage/IsHintMsg/IsMDIMsg/IsKeyMsg/IsDlgMsg und TranslateMessage/DispatchMessage) ausgeführt.
Also einfach in Application.OnMessage Handled:=True und/oder Msg.message := WM_NULL; ,
aber ein Blick in TApplication.ProcessMessage zeigt, dass nachher dennoch einige Messages verarbeitet werden, selbst wenn Handled=True.
Klappt eben nicht.
Habe ich doch ausprobiert.


2: Rausfinden was Msg.Wnd ist und dessen WndProc hooken.

3: Du mußt GetMessage/PeekMessage (WH_GETMESSAGE) hooken und nicht DispatchMessage (WH_CALLWNDPROC).
Hook nützt ja nichts, ich will, dass die Nachricht "verschwindet", laut MS kann die Nachtricht aber nicht verändert werden. Oder geht das doch???.


Ich habe auf meine Proc und die WndProc (hier z.B. von WPTools) Breakpoints gesetzt,
am Anfang klappt es, aber sobald die WPTools-WndProc aufgerufen wird, kommt meine Proc
nicht mehr zum Zug. Ich müßte also sämtliche Module, wo WndProc überschrieben wird,
selbst anpassen.
Heiko
  Mit Zitat antworten Zitat