Я делаю обновление для своего приложения. Мое приложение - это приложение пользовательского интерфейса. Я хочу сделать это как консольное приложение, но я не знаю, как его скрыть. Я использовал этот код:
HWND hwnd = GetConsoleWindow();
ShowWindow(hwnd, 0);
Но когда приложение запускается, окна cmd появляются на секунду. Как я могу скрыть это?
FreeConsole() api сделает это за вас:
BOOL WINAPI FreeConsole(void);
Что хорошего в консольном окне, которое вы скрываете (если вы не делаете замену окон консоли, которую вы не делаете)?
Самый простой способ скрыть окно консоли - это не создавать его в первую очередь, т.е. Просто не связывать exe как исполняемую консольную подсистему, а ссылаться как исполняемый файл подсистемы графического интерфейса (как "windows").
Одним из следствий этого является то, что стандартный интерпретатор команд Windows не будет ждать завершения программы, но все.
Другой вариант - запустить вашу программу с помощью утилиты, которая запускает ее с скрытым скрытым окном консоли. VBScript и Windows Script Host приходят на ум. Но это было бы относительно сложным усложнением, чтобы подавить окно, которое есть только потому, что вы его просили...
SW_HIDE
, а не 0. И если вам не нужно окно консоли, не связывайте его как консольную программу. Заставьте его использовать подсистему Windows. Если вам нужна консоль, используйтеAllocConsole
чтобы получить ее.-mwindows
если используете gcc илиWinMain
качестве точки входа. Таким образом, консоль не будет отображаться вообще. Не уверен, что вы можете сделать это в Visual-C ++, но это стоит попробовать.