Alle Vorschläge gingen bisher global auf das ganzze Windows.
Wenn es um den Fokus im eigenen Windows geht, dann könnte man sich an Application.OnMessage hängen, bzw. besser doch an TApplicationEvents.OnMessage und reagiert dort nur auf Messages im eigenen Programm.
Oder, wie auch schon erwähnt:
- über das genannte Programm alle Messages mitloggen, wobei ich dachte, daß es da auch noch ein Programm von Sysinternals gäbe
- oder eben alle x Millisekunden schauen welches Fenster aktiv ist
- - über dieses
Handle kann man nun an den zugehörigen Process rankommen
- - und man kommt darüber notfalls auch noch, an das Control darin, welches direkt den Fokus besitzt
GetForegroundWindow
GetWindowThreadProcessId
GetWindowText
GetWindowModuleFileName
GetGUIThreadInfo
uvm.