как обеспечить и получить дескриптор окна по его имени, представленному в UNICODE? - PullRequest
0 голосов
/ 15 декабря 2011

как я могу убедиться, что при передаче Minesweeper он будет в Unicode и не будет преобразован в ASCII?

HWND procHnd;
HWND windowHnd=FindWindow(NULL,"Minesweeper");

имеет ли вообще значение название процесса или представление окна?

1 Ответ

1 голос
/ 15 декабря 2011

Вы можете явно использовать версию API для Unicode

HWND windowHnd = FindWindowW(NULL, L"Minesweeper");

В настоящее время вы создаете приложение для символов ANSI.Если вы хотите использовать Unicode везде, вы должны изменить параметры проекта для использования Unicode.Если вы сделали это, вы можете просто написать это как

HWND windowHnd = FindWindow(NULL, L"Minesweeper");

Функции Windows API, параметры которых содержат текст, доступны в двух версиях, версии ANSI и версии Unicode.Например, DLL-библиотека user32 не экспортирует функцию с именем FindWindow.Вместо этого он экспортирует FindWindowA, версию ANSI, и FindWindowW, версию Unicode.Макросы в заголовочных файлах Windows преобразуют FindWindow в FindWindowA или FindWindowW, в зависимости от выбранного набора символов.

В Visual Studio этот параметр можно установить в конфигурации проекта в разделе «Свойства конфигурации» |Генерал |Набор символов.Выберите Использовать набор символов Unicode .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...