2010-07-11 3 views
3

Можно ли настроить фокус на консольном приложении в Windows? SetFocus выглядит многообещающим, но ему нужен HWND, и я не знаю, есть ли в консольных приложениях его.Установить фокус на консоли в Windows?

+0

Вы ищете способ сделать это из самого приложения консоли или из другого приложения? –

ответ

2

Используйте функцию GetConsoleWindow.

+0

Это возвращает NULL для меня. Я предполагаю, что это работает, если я фактически создаю консоль для приложения Windows с AllocConsole или что-то в этом роде. – Steven

+0

Если он запущен в оконном сеансе консоли, вы должны получить действительный HWND. Если он находится в сеансе входа в службу, то не будет никакого связанного окна. И Windows автоматически вызывает 'AllocConsole' или' AttachConsole' всякий раз, когда он запускает процесс, связанный с опцией '/ SUBSYSTEM: CONSOLE' (хранится как флаг в PE-заголовке). –

+0

На самом деле 'GetConsoleWindow' действительно работает. Однако 'SetFocus' возвращает NULL, а' GetLastError' дает ERROR_ACCESS_DENIED. Любые идеи почему? – Steven

Смежные вопросы