Общесистемный фокус - PullRequest
       5

Общесистемный фокус

1 голос
/ 10 августа 2009

Возможно ли получить HWND текущего сфокусированного окна? Для всей станции Windows, а не текущего приложения. Целевое приложение - Win32. Я могу получить текущее окно, используя: GetForegroundWindow (), однако, это только главное окно. Я могу перечислить дочерние окна, но как определить, сфокусировано ли оно?

1 Ответ

2 голосов
/ 10 августа 2009
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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...