Получение дескриптора текущего окна в GetWindowText? - PullRequest
0 голосов
/ 07 января 2012

Я хочу отобразить заголовок диалогового окна:

HWND hWnd = ::GetActiveWindow();
char cc[101];
::GetWindowText(hWnd,cc,100);
MessageBox(cc);

, но результат выдает пустое "".

не уверен, что не так ??

Ответы [ 2 ]

1 голос
/ 07 января 2012

Согласно MSDN :

Извлекает дескриптор окна к активному окну, прикрепленному к очереди сообщений вызывающего потока.

Это означает, что если поток, из которого вы вызываете функцию, не владеет никаким окном, функция завершится ошибкой.

Вы, вероятно, хотите вместо этого GetForegroundWindow.

0 голосов
/ 01 апреля 2016

Это может быть немного поздно, но все равно Если вы хотите в любой момент получить текущее (активное) окно в системе, наилучшим подходом является использование процедуры, реализованной в DLL, а затем установка глобальной ловушки, вызывающей эту процедуру.

Следующие ресурсы весьма полезны:

  1. Создание и использование вашей DLL
  2. Обзор крючков
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...