Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Debug, alle Maus/Keyboard Events mitloggen (https://www.delphipraxis.net/162901-debug-alle-maus-keyboard-events-mitloggen.html)

e.asy 9. Sep 2011 07:07

Debug, alle Maus/Keyboard Events mitloggen
 
Moin,

ich weiss nicht, ob ich hier im richtigen Forum bin, aber ich hoffe es mal. :)

Ich habe ein kleines Problemchen mit meiner Anwendung, meine Benutzer sagen mir, dass es sich "komisch" verhält und Aktionen an Stellen ausführt, wo ich als Programmierer sagen würde, das ist gar nicht möglich.
Nun möchte ich zu Debug-Zwecken (um nachvollziehen zu können, was die Benutzer genau machen, und ich keine Lust habe Stunden dabeizustehen um auf den "Bug" zu warten) alle Maus und Keyboard-Events mitloggen.
Ich brauch diese natürlich nur in meiner App und nicht Global fürs ganze Wintendo.
Idealerweise könnte ich noch herausfinden, auf welches Element der Event ausgelöst wurde. Also z.B. sowas wie: MouseButtonDown auf "Button_Next" oder Keypress in "Edit_Name" etc.

Gibt es da schon fertig Lösungen? Wenn nicht, wie kann ich sowas einfach implementieren, ohne meine gesamte Anweundung umschreiben zu müssen?


MfG,
easy.

himitsu 9. Sep 2011 07:16

AW: Debug, alle Maus/Keyboard Events mitloggen
 
TApplicationEvents auf eine immer sichtbare Form pappen
und nun kommen alle Events im OnMessage vorbei, wo du auf WM_KEY... und Co. prüfen kannst.
Die Funktion FindControl macht dir aus dem Handle (HWND) ein TControl, wenn es einem entspricht.

e.asy 9. Sep 2011 09:02

AW: Debug, alle Maus/Keyboard Events mitloggen
 
Moin,

super! :D

Das ist genau das was ich gesucht habe.
Nun ist mir allerdings aufgefallen, dass WM_KEYDOWN und EN_SETFOCUS die gleiche Message (als Integer) sind.
D.h. ich sehe In meiner Logdatei KEYDOWN-Events wo gar keine sind.

Wie kann ich diese denn auseinanderhalten?


Sonnige Grüsse,
easy.

himitsu 9. Sep 2011 09:42

AW: Debug, alle Maus/Keyboard Events mitloggen
 
Delphi-Quellcode:
{ Edit Control Notification Codes }

const
  {$EXTERNALSYM EN_SETFOCUS}
  EN_SETFOCUS = $0100;
Das ist also eine Message, welche nur von Edit-Controls kommt,
da du aber kein Edit-Control überwachen willst, kannst du dieses ignorieren.

PS: Das ist übrigend eine Message von einem Edit udn nicht an ein Edit.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:33 Uhr.

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