Moin The-X,
mit der
API Funktion GetGUIThreadInfo kann man direkt das
Handle des Fenster ermitteln, dass zum einen den Keyboardfokus, und zum anderen das Caret beinhaltet, also ein Eingabefeld ist.
Z.B. so:
Delphi-Quellcode:
var
gtiWork : TGUITHREADINFO;
if not GetGUIThreadInfo(0,gtiWork) then exit;
if (gtiWork.flags and GUI_CARETBLINKING) = 0 then exit; // Kein Caret => Kein Eingabefeld
if (gtiWork.hwndCaret = INVALID_HANDLE_VALUE) or // Kein Caret => Kein Eingabefeld
(gtiWork.hwndCaret = 0) or // " "
(gtiWork.hwndCaret <> gtiWork.hwndFocus) then exit; // Fenster mit Caret hat nicht den Fokus