Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Eingabefeld einer anderen Anwendung überwachen (https://www.delphipraxis.net/82284-eingabefeld-einer-anderen-anwendung-ueberwachen.html)

Meflin 10. Dez 2006 10:58


Eingabefeld einer anderen Anwendung überwachen
 
Moin!

Ich würde gerne ein Eingabefeld einer Fremdanwendung überwachen (es handelt sich glaube ich um ein RichEdit). die simpelste Lösung wäre den Inhalt dieses Feldes in einem kurzen Zeitintervall abzufragen, was nicht weiter schwer wäre.

Das ist mir aber doch etwas zu trivial :mrgreen:

Gibt es da nicht irgendeine Möglichkeit, meine Anwendung bei Änderungen zu benachrichtigen, eine Art Callback-Event? Das wäre wesentlich besser, da sich in dem Eingabefeld ja auch mal längere Zeit nichts tun kann und somit obige Variante eine pure Verschwendung von Rechenleistung wäre.

:feuerchen:


BBG 10. Dez 2006 16:21

Re: Eingabefeld einer anderen Anwendung überwachen
 
Wenn sich der Text nur nach Tastatureingaben ändert, so sind Hooks dein Freund.

Meflin 10. Dez 2006 16:43

Re: Eingabefeld einer anderen Anwendung überwachen
 
Zitat:

Zitat von BBG
Wenn sich der Text nur nach Tastatureingaben ändert, so sind Hooks dein Freund.

das ist nie der Fall... der Text kommt von einem Server und wird eben in dieser Form angezeigt, selber kann man da garnix reinschreiben ;)


BBG 10. Dez 2006 16:50

Re: Eingabefeld einer anderen Anwendung überwachen
 
Das Programm ist nicht von dir?
Eine -zugegebener Maßen etwas übertriebene Lösung- wäre, den Netzwerkverkehr zu loggen.

//Edit: Wozu eigentlich überwachen?

BBG 10. Dez 2006 16:55

Re: Eingabefeld einer anderen Anwendung überwachen
 
Hmm, das RichEdit wird doch über APIs neugezeichnet, wenn der Inhalt sich ändert?

Meflin 11. Dez 2006 13:58

Re: Eingabefeld einer anderen Anwendung überwachen
 
Zitat:

Zitat von BBG
Das Programm ist nicht von dir?

Nein, ist es nicht
Zitat:

Eine -zugegebener Maßen etwas übertriebene Lösung- wäre, den Netzwerkverkehr zu loggen.
:shock: dann ja noch lieber die Variante mit dem Zeitintervall
Zitat:

Edit: Wozu eigentlich überwachen?
Warum denn nicht :stupid:
Zitat:

Hmm, das RichEdit wird doch über APIs neugezeichnet, wenn der Inhalt sich ändert?
Ka wie das abläuft. Könnte man diese Messages hooken bzw filtern und dadurch immer dann, wenn man eine abfängt wissen, dass es eine Änderung gab :gruebel: ?


SirThornberry 11. Dez 2006 14:26

Re: Eingabefeld einer anderen Anwendung überwachen
 
ich glaub ein Messagehook wäre hier geeignet. Der Text des Controls wird mit recht hoher Wahrscheinlichkeit darüber geändert

Meflin 11. Dez 2006 16:25

Re: Eingabefeld einer anderen Anwendung überwachen
 
Zitat:

Zitat von SirThornberry
ich glaub ein Messagehook wäre hier geeignet. Der Text des Controls wird mit recht hoher Wahrscheinlichkeit darüber geändert

und wie liese sich herausfinden, welche Messages da gesendet werden? Gibts da irgendein Tool, mit dem man das für bestimmte Anwendungen überwachen kann?



Alle Zeitangaben in WEZ +1. Es ist jetzt 19:38 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