Text im aktiven Textfeld einer beliebigen Anwendung auslesen

13/10/2007 - 13:40 von Karsten Jasper | Report spam
Hallo!

Ich muss den Text und die Cursorposition des aktiven Textfeldes einer
beliebigen Anwendung (der Vordergrundanwendung) auslesen.
Hat jemand eine Idee, wie ich das realisieren kann? Auch über wagemutige
Ansàtze freue ich mich, weil ich selbst keine Idee mehr habe. Mein
abstrusester Ansatz war schon, Screenshots zu machen und dann eine
Texterkennung einzusetzen.
Geht es möglicherweise auch noch anders?

Vielen Dank für eine Antwort.
Karsten Jasper.
 

Lesen sie die antworten

#1 Juergen Thuemmler
13/10/2007 - 16:08 | Warnen spam
Ich muss den Text und die Cursorposition des aktiven Textfeldes einer
beliebigen Anwendung (der Vordergrundanwendung) auslesen.
Hat jemand eine Idee, wie ich das realisieren kann?



Das Handle des aktiven (Kind)Fensters kannst Du mit der Funktion
"GetActiveChild()" aus der DLL "DSHANDLE" ermitteln:
http://allapi.mentalis.org/vbexampl...e=DSHandle

Denn einen String vorinitialisieren und mit WM_GETTEXT per SendMessage() an
das Fenster schicken:
Const WM_GETTEXT& = &HD
Declare Function SendMessageByString& Lib "user32" Alias "SendMessageA"
(ByVal hwnd&, ByVal wMsg&, ByVal wParam&, ByVal lParam$)
'...
Dim dummy$, dl&
dummy = String$(1024, 0) 'Stringlànge hàngt von den konkreten Gegebenheiten
ab
'...
dl = SendMessageByString(hwnd, WM_GETTEXT, Len(dummy), dummy)
dummy = Left$(dummy, dl)

Fehlerbehandlung, Verfizierung des Handles, Prüfung der Fensterklasse etc.
etc. gehören dann noch drumherum.

Jürgen.

Ähnliche fragen