Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Windowsnachrichtenschleife visualisieren (https://www.delphipraxis.net/110881-windowsnachrichtenschleife-visualisieren.html)

DelphiManiac 26. Mär 2008 09:51


Windowsnachrichtenschleife visualisieren
 
Hallo,

ich würde gerne die Aktionen, die die Windowsnachrichtenschleife abarbeitet visualisieren, so das ich
aufgestaute Nachrichten sehen kann, bzw sehe mit was das Programm beschäftigt ist...

Danke euch!

s.h.a.r.k 26. Mär 2008 10:11

Re: Windowsnachrichtenschleife visualisieren
 
Du meinst im Endeffekt das hier: jede Message, welche an dein Programm geschickt wird abfangen, interpretieren (d.h. zum Bleistift in eine ListBox oder dergleichen eintragen -> deine gewünschte Visualisierung eben) und weiterleiten?

DelphiManiac 26. Mär 2008 10:25

Re: Windowsnachrichtenschleife visualisieren
 
Ja genau, so ungefähr meine ich dass,
ich möchte das was so "scheinbar unsichtbar" im Hintergrund läuft mir mal angucken können...?!

toms 26. Mär 2008 10:32

Re: Windowsnachrichtenschleife visualisieren
 
Hallo,

Implementiere einen WH_CALLWNDPROC resp. WH_CALLWNDPROCRET Hook.

Zitat:

WH_CALLWNDPROC
Installs a hook procedure that monitors messages before the system sends them to the destination window procedure. For more information, see the CallWndProc hook procedure.

WH_CALLWNDPROCRET
Installs a hook procedure that monitors messages after they have been processed by the destination window procedure. For more information, see the CallWndRetProc hook procedure.
Damit kannst du

hsg 26. Mär 2008 10:50

Re: Windowsnachrichtenschleife visualisieren
 
Alternativ suche nach Winsight und Konsorten (MS-Spy, X-Spy), dass sind fertige Programme die das für dich machen. Ich persönlich nutze pe (private eye). Wurde vor Jahren mal in Visual Objects geschrieben, leistet mir aber auch heute noch oft gute Dienste

jbg 26. Mär 2008 10:58

Re: Windowsnachrichtenschleife visualisieren
 
Zitat:

Zitat von toms
Implementiere einen WH_CALLWNDPROC resp. WH_CALLWNDPROCRET Hook.

Von diesem Hook kann ich nur abraten. Mit jeder zusätzlichen WH_CALLWNDPROC Callback Funktion schrumpft der SendMessage-Stack gewaltig. Und unter 64Bit Systemen auch noch mit doppelter Geschwindigkeit. Das hat dann zur Folge, dass Programme (wie z.B. die Delphi 2007 IDE) nach einem Resize ihre Controls nicht mehr richtig ausrichten können, weil die SendMessage Aufrufe der tiefer liegenden Controls von Windows einfach geschluckt werden.

toms 26. Mär 2008 11:09

Re: Windowsnachrichtenschleife visualisieren
 
Zitat:

Zitat von jbg
Zitat:

Zitat von toms
Implementiere einen WH_CALLWNDPROC resp. WH_CALLWNDPROCRET Hook.

Von diesem Hook kann ich nur abraten. Mit jeder zusätzlichen WH_CALLWNDPROC Callback Funktion schrumpft der SendMessage-Stack gewaltig. Und unter 64Bit Systemen auch noch mit doppelter Geschwindigkeit. Das hat dann zur Folge, dass Programme (wie z.B. die Delphi 2007 IDE) nach einem Resize ihre Controls nicht mehr richtig ausrichten können, weil die SendMessage Aufrufe der tiefer liegenden Controls von Windows einfach geschluckt werden.

Hallo Andreas, welchen Hook würdest du denn empfehlen?

toms 6. Apr 2008 16:23

Re: Windowsnachrichtenschleife visualisieren
 
:?:

Der.Kaktus 6. Apr 2008 16:58

Re: Windowsnachrichtenschleife visualisieren
 
schau Dir mal den APIMonitor an und vorallem, wenn Du alles anhakst, die Prozessorauslastung(falls Du noch was lesen kannst :-D )!!

toms 7. Apr 2008 14:00

Re: Windowsnachrichtenschleife visualisieren
 
Zitat:

Zitat von Der.Kaktus
schau Dir mal den APIMonitor an und vorallem, wenn Du alles anhakst, die Prozessorauslastung(falls Du noch was lesen kannst :-D )!!

Wenn alle Nachrichten angehakt werden, leider sicherlich die Performance darunter.
Mich würde es immer noch interessieren, wie es Andreas machen würde.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:42 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz