Discussion:
Auslesen von Fensterinhalt
(zu alt für eine Antwort)
Ralf Weber
vor 22 Jahren
Permalink
Hallo,

bei meiner Arbeit an einem kleinen Tool hab ich ein Problem.
Ich moechte den Inhalt eines Fensters auslesen, welches selbst nicht
zum Programm gehoert. Also ein geoeffnetes Fenster eines anderen
Programms. Der Inhalt ist zeilenweise mit ASCII-Zeichen aufgebaut.

Wie kann ich darauf zugreifen bzw. geht das ueberhaupt ?
Eigentlich duerfte das nach meinem bisherigem Wissensstand gar nicht
funktionieren (wegen Kapselung der Objekte) (?), doch es gibt
Programme bei denen das geht.

Lauft das dann ueber das direkte Auslesen des Screens ?

Hilft mir da evtl. die API-Programmierung weiter ?

vielen Dank schon mal, Ralf

PS: Ich arbeite mit Delphi 6 Personal...
Michael Winter
vor 22 Jahren
Permalink
Post by Ralf Weber
bei meiner Arbeit an einem kleinen Tool hab ich ein Problem.
Ich moechte den Inhalt eines Fensters auslesen, welches selbst nicht
zum Programm gehoert. Also ein geoeffnetes Fenster eines anderen
Programms. Der Inhalt ist zeilenweise mit ASCII-Zeichen aufgebaut.
Wie kann ich darauf zugreifen bzw. geht das ueberhaupt ?
Du hast gute Chancen, wenn das Fenster zu einer Standard-Windows-'Klasse'
wie EDIT oder LISTBOX gehört. Mit Winsight (im Lieferumfang von Delphi)
kannst du das herausfinden.
Post by Ralf Weber
Lauft das dann ueber das direkte Auslesen des Screens ?
Das ist die aufwändige, aber dafür universelle Methode. Dann musst du
Grafik in Text zurück verwandeln. Falls ich die Frage richtig verstehe, ist
das in deinem Fall nicht notwendig.
Post by Ralf Weber
Hilft mir da evtl. die API-Programmierung weiter ?
Richtig erkannt.
Post by Ralf Weber
PS: Ich arbeite mit Delphi 6 Personal...
F'up dorthin gesetzt.

-Michael
R***@gmx.de
vor 22 Jahren
Permalink
On Fri, 28 Nov 2003 20:15:12 +0100, Michael Winter
Post by Michael Winter
Du hast gute Chancen, wenn das Fenster zu einer Standard-Windows-'Klasse'
wie EDIT oder LISTBOX gehört. Mit Winsight (im Lieferumfang von Delphi)
kannst du das herausfinden.
Das Fenster ist denke ich mal sowas wie die DOS-Box.
Danke, werd das mit WinSight mal probieren...
Post by Michael Winter
Post by Ralf Weber
Lauft das dann ueber das direkte Auslesen des Screens ?
Das ist die aufwändige, aber dafür universelle Methode. Dann musst du
Grafik in Text zurück verwandeln. Falls ich die Frage richtig verstehe, ist
das in deinem Fall nicht notwendig.
Post by Ralf Weber
Hilft mir da evtl. die API-Programmierung weiter ?
Richtig erkannt.
Na denn schönen dank erstmal, Ralf ...
Ralf Weber
vor 22 Jahren
Permalink
Post by Michael Winter
Du hast gute Chancen, wenn das Fenster zu einer Standard-Windows-'Klasse'
wie EDIT oder LISTBOX gehört. Mit Winsight (im Lieferumfang von Delphi)
kannst du das herausfinden.
Kann Winsight nicht finden !
Ist das bei der Personal Version von Delphi 6 mit enthalten ?

MfG, Ralf...
Simon Reinhardt
vor 22 Jahren
Permalink
Post by Ralf Weber
Post by Michael Winter
Du hast gute Chancen, wenn das Fenster zu einer
Standard-Windows-'Klasse' wie EDIT oder LISTBOX gehört. Mit Winsight
(im Lieferumfang von Delphi) kannst du das herausfinden.
Kann Winsight nicht finden !
Ist das bei der Personal Version von Delphi 6 mit enthalten ?
Alternativ kannst Du mein "Fensterliste"-Programm verwenden.


Simon
--
Don't panic

Homepage: http://www.picsoft.de
Delphi Fundgrube: http://www.delphi-fundgrube.de
Ekkehard Morgenstern
vor 22 Jahren
Permalink
Post by Ralf Weber
Wie kann ich darauf zugreifen bzw. geht das ueberhaupt ?
Was die anderen gesagt haben, plus:

Wenn das Fenster eine Konsole ist, kann man mit den Windows-Konsole-APIs
darauf zugreifen, vorausgesetzt, der Prozess, dem die Konsole gehört, hat
die Leserechte darauf freigegeben (dürfte meistens der Fall sein, kenne
keine Konsole-Anwendung die das Konsole-Security-Management benutzt).

Eine weitere Möglichkeit, für Anwendungen mit normalen Fenstern, ist, die
entsprechenden Tastaturkürzel für "Alles markieren" und "Kopieren" zu
schicken, falls die jeweilige Anwendung sowas unterstützt. Danach liegt der
Text meist auf dem Clipboard (außer, die Anwendung ist nicht
Windows-konform).

Wenn man über eine OCR-Software verfügt (liegt z.B. vielen Scannern bei),
kann man das Fenster als Grafik grabben und an die OCR-Software schicken (je
nach Übergabemechanismus).

In der Regel lassen sich selbst bei Windows XP noch die Fensterinhalte aller
Fenster auslesen.

Hoffe, das hiflt.
Loading...