2009-08-10 4 views
1

Ist es möglich, HWND bekommen von derzeit Fenster fokussiert? Für die gesamte Windows-Station, nicht die aktuelle Anwendung. Zielanwendung ist Win32. Ich kann aktuelle Fenster erhalten mit: GetForegroundWindow() aber dies ist das Hauptfenster nur. Ich kann untergeordnete Fenster aufzählen, aber wie kann ich feststellen, ob es fokussiert ist?Systemweite Fokus

Antwort

2
HWND RemoteGetFocus() 
{ 
    HWND hwnd = GetForegroundWindow(); 
    DWORD remoteThreadId = GetWindowThreadProcessId(hwnd, NULL); 
    DWORD currentThreadId = GetCurrentThreadId(); 
    AttachThreadInput(remoteThreadId, currentThreadId, TRUE); 
    HWND focused = GetFocus(); 
    AttachThreadInput(remoteThreadId, currentThreadId, FALSE); 
    return focused; 
} 
+0

Brilliant! Vielen Dank! –