【发布时间】:2009-08-10 09:32:30
【问题描述】:
是否可以获得当前焦点窗口的 HWND?对于整个 windows 站,不是当前的应用程序。目标应用程序是 Win32。我可以使用 :GetForegroundWindow() 获取当前窗口,但这只是主窗口。我可以枚举子窗口,但如何确定它是否具有焦点?
【问题讨论】:
是否可以获得当前焦点窗口的 HWND?对于整个 windows 站,不是当前的应用程序。目标应用程序是 Win32。我可以使用 :GetForegroundWindow() 获取当前窗口,但这只是主窗口。我可以枚举子窗口,但如何确定它是否具有焦点?
【问题讨论】:
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;
}
【讨论】: