代码之家  ›  专栏  ›  技术社区  ›  Ivan G.

全系统焦点

  •  1
  • Ivan G.  · 技术社区  · 17 年前

    是否可以获取当前焦点窗口的Hwnd?对于整个Windows工作站,而不是当前应用程序。目标应用程序是win32。我可以使用:getForegroundWindow()获取当前窗口,但这只是主窗口。我可以枚举子窗口,但如何确定它是否集中?

    1 回复  |  直到 17 年前
        1
  •  2
  •   Ray    17 年前
    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;
    }