Почему не находит окно по точному названию? c++ WinApi
Используя Spy++ пытаюсь найти окно браузера "Без имени – Яндекс.Браузер", но FindWindow его не находит.
BYTE R, G;
HWND Handle = FindWindow(NULL, _T("Без имени — Яндекс.Браузер"));
if (Handle != NULL) {
std::cout << "Window IS found!\n";
POINT cursorPos;
while (true)
{
if (GetCursorPos(&cursorPos))
{
if (ScreenToClient(Handle, &cursorPos)) {
std::cout << "{ " << cursorPos.x << " , " << cursorPos.y << " }" << std::endl;
Sleep(1000);
}
}
}
}
else {
std::cout << "Window is NOT found!\n";
}
Ответы (2 шт):
Поиск по названию окна довольно не стабилен, возможно стоит задуматься над поиском по названию процесса или же получить окно под курсором WindowFromPoint
Советую вам почитать документацию по FindWindow
Тут небольшая вырезка из неё.
Функция FindWindow извлекает дескриптор окна верхнего уровня, имя класса и имя окна которого соответствуют заданным строкам. Эта функция не ищет дочерние окна. Эта функция не выполняет регистрозависимый поиск.
Чтобы найти дочерние окна, начинающиеся с заданного дочернего окна, используют функцию FindWindowEx
Возвращаемые значения
Если функция завершилась успешно, возвращаемое значение - дескриптор окна, которое имеет заданное имя класса и имя окна.
Если функция завершается ошибкой, возвращаемое значение - ПУСТО (NULL). Чтобы получить дополнительные данные об ошибках, вызовите функцию GetLastError.
Вывод.
Так как это браузер то я предполагаю что это окно не верхнего уровня, и посмотреть что вернет GetLastError