Entwickler-Ecke
Windows API - handle des Fensters, das den Fokus hat!
Bayo - So 17.08.03 17:05
Titel: handle des Fensters, das den Fokus hat!
Hi zusammen...
Ich probiere irgendwie das Handle des Fensters, das den Fokus hat, herauszufinden! Die funktion GetFocus funktioniert nur innerhalb der eigenen Anwendung! Ich müsste das Handle des "fokusierten" Fensters der aktiven Anwendung haben, egal welche Anwendung aktiv ist! Hm, ich hoffe ihr versteht, was ich meine!?
Grüsse und vielen Dank.. Dominic
Bayo - So 17.08.03 17:54
GetForegroundWindow gibt das Handle des Hauptfensters der aktiven Anwendung zurück und nicht des Fensters, dass effektiv den Fokus hat!
Leider funktioniert das nicht :( trotzdem vielen dank!
Delete - So 17.08.03 23:55
foo.
Bayo - Di 19.08.03 16:58
Folgend der funktionierende Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TForm1.WMHotKey(var Msg : TWMHotKey); var attach, attachTo: Cardinal; value: String; begin Case Msg.HotKey of FOCUSEDWND_HOTKEY: begin attach := GetWindowThreadProcessId(GetForegroundWindow, nil); attachTo := GetCurrentThreadId; if AttachThreadInput(attach, attachTo, True) then begin hFocusedWnd := GetFocus; AttachThreadInput(attach, attachTo, False); end else begin hFocusedWnd := GetFocus; end; value := 'Test'; SendMessage(hFocusedWnd, WM_SETTEXT, 0, Integer(@value[1])); end; end; end; |
Problem: GetFocus funktioniert nur für fenster die durch den selben thread erzeugt wurden!
Um diese Funktion trotzdem verwenden zu können, muss der thread des fensters, das den eingabefokus hat, mit dem thread, der die funktion GetFocus aufruft "verbunden" werden. Das geschieht mit AttachThreadInput.
Grüsse Dominic
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!