#cpp #winapi
Как можно проверить консольное ли приложение или оконное? Может в winapi есть какое-то описание процесса, его свойств?
Ответы
Ответ 1
Если вы используете майкрософтовский SDK, то начиная с версии 10 для проверки "самого себя" у вас есть [недокументированная или полу-документированная] возможность сделать #include... _crt_app_type type = _query_app_type(); с возвращаемыми значениями _crt_console_app и _crt_gui_app. Аналогичные возможности есть и в более ранних версиях SDK, но интерфейс варьируется. Ответ 2
В текущем процессе проверить, является ли приложение консольным, можно так: #include#pragma comment(lib, "Dbghelp") extern "C" const IMAGE_DOS_HEADER __ImageBase; ... bool isConsole(){ PIMAGE_NT_HEADERS nt = ImageNtHeader((void*)&__ImageBase); return nt->OptionalHeader.Subsystem == IMAGE_SUBSYSTEM_WINDOWS_CUI; }
Комментариев нет:
Отправить комментарий