Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
2 / 2 / 1
Регистрация: 24.02.2015
Сообщений: 206

Можно ли не показывать (спрятать) консоль?

27.08.2015, 16:04. Показов 2825. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Чтоб консоль не отображалась,но выполняла все что в коде.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.08.2015, 16:04
Ответы с готовыми решениями:

Можно ли спрятать консоль в C++, и если да, то как?
Можно-ли спрятать консоль в с++, если да, то как? (спрятать - чтобы она не отображалась графически) А за одно какие для этого...

Спрятать консоль
А кто ни будь научился консоль прятать Надо ее в десктопа убрать, что бы в фоне работала.

Как спрятать консоль?
Есть проблема - в винформах метод this.Hide() прятал форму в процессы. К сожалению это не работает с консолью. Есть ли аналог?

18
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
27.08.2015, 16:14
G_Man002, для gcc/mingw ключ компилятора -mwindows, для visual studio, если не ошибаюсь, /SUBSYSTEM:WINDOWS
0
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
27.08.2015, 16:14
Лучший ответ Сообщение было отмечено G_Man002 как решение

Решение

Разумеется.
1) Создать процесс с соответствующими флагами.
2) Заменить точку входа (есть подозрения что огребёшь с уничтожением объектов)
3) Создать оконную программу, но не рисовать окно.
4) Отпустить консоль с помощью FreeConsole, но она мигнёт на мгновение.
1
2 / 2 / 1
Регистрация: 24.02.2015
Сообщений: 206
27.08.2015, 16:24  [ТС]
Цитата Сообщение от Enno Посмотреть сообщение
Создать оконную программу, но не рисовать окно.
Похоже никак,придется просто делать оконную программу.
0
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
27.08.2015, 16:26
Цитата Сообщение от G_Man002 Посмотреть сообщение
придется просто делать оконную программу.
Отличаться она у тебя будет только названием функции: не main, а WinMain.
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,028
Записей в блоге: 1
27.08.2015, 16:38
Цитата Сообщение от Enno Посмотреть сообщение
Отличаться она у тебя будет только названием функции: не main, а WinMain.
кто-то говорил о windows?
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
27.08.2015, 16:40
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
если не ошибаюсь, /SUBSYSTEM:WINDOWS
+ установить точку входа mainCRTStartup
2
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
27.08.2015, 17:38
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
+ установить точку входа mainCRTStartup
Вот это-то и надо запомнить. Указатель не изменяет формы, консольное окно не появляется.
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
27.08.2015, 23:02
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
+ установить точку входа mainCRTStartup
А вот так делать не надо (случайно поставил "+").
Достаточно просто указать "тип приложения - оконное (не консоль)" при
создании проекта. А mainCRTStartup - это internals, она относится к
реализации Visual C++ и компилятора MS. Для оконных приложений точка
входа должна быть WinMain, для консольных main.
1
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
28.08.2015, 16:18
Цитата Сообщение от Убежденный Посмотреть сообщение
Для оконных приложений точка входа должна быть WinMain, для консольных main.
А где именно, в какой функции, происходит вызов AllocConsole и появляется консоль? Я поковырял crt0.c, но там и другие функции вызываются, я в них не полез пока. По факту ведь точка входа одна и та же, действия только разнятся в зависимости от того определён ли макрос _WINMAIN_ или нет.
C++
1
#define _tmainCRTStartup    WinMainCRTStartup
Я так думаю что решением будет замена этого места (создания консоли) и создание runtime-библиотеки для целей "скрытого создания процесса". Это возможно, имея под рукой MSVisualStudio? Потому что при изменении точки входа на некорректную компоновщик жалуется на отсутствие этой функции в MSVCRT.lib (MSVCRTD.lib в дебаг версии), но в параметрах компоновщика я такой библиотеки не нашёл, посему не знаю возможно ли "официально" заменить CRT "кишки".
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
28.08.2015, 20:38
Цитата Сообщение от Enno Посмотреть сообщение
А где именно, в какой функции, происходит вызов AllocConsole и появляется консоль? Я поковырял crt0.c, но там и другие функции вызываются, я в них не полез пока.
Консоль создается задолго до того, как вызывается точка входа в exe,
так что подмена точки входа или замена стартового кода ничего не даст.
Чтобы скрыть консоль, нужно или сделать оконное приложение, или
запускать свою программу скрыто (SW_HIDE), или вообще где-нибудь
на другом десктопе, тогда ее точно не будет видно.

Цитата Сообщение от Enno Посмотреть сообщение
По факту ведь точка входа одна и та же, действия только разнятся в зависимости от того определён ли макрос _WINMAIN_ или нет.
Никогда не задумывался, откуда берутся параметры HINSTANCE в WinMain
или массив аргументов командной строки в main ?

Цитата Сообщение от Enno Посмотреть сообщение
Я так думаю что решением будет замена этого места (создания консоли) и создание runtime-библиотеки для целей "скрытого создания процесса".
А не лучше ли для этого просто использовать оконное, а не консольное приложение ?
0
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
29.08.2015, 08:00
Цитата Сообщение от Убежденный Посмотреть сообщение
Консоль создается задолго до того, как вызывается точка входа в exe
На основе каких данных? Из заголовка PE?
Цитата Сообщение от Убежденный Посмотреть сообщение
Никогда не задумывался, откуда берутся параметры HINSTANCE в WinMain или массив аргументов командной строки в main ?
Я знаю откуда берутся, я же сказал что посмотрел функцию maincrtstartup, там #if и нашёл.
Цитата Сообщение от Убежденный Посмотреть сообщение
А не лучше ли для этого просто использовать оконное, а не консольное приложение ?
Пару месяцев назад я заморочился этим делом, есть тема даже на форуме, но эти проклятые песочные часы появляются вне зависимости как быстро ты начнёшь загребать сообщения. А тут всё абсолютно невидимо, ровно так как надо.
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
29.08.2015, 09:03
Цитата Сообщение от Enno Посмотреть сообщение
На основе каких данных? Из заголовка PE?
Да.

Цитата Сообщение от Enno Посмотреть сообщение
Пару месяцев назад я заморочился этим делом, есть тема даже на форуме, но эти проклятые песочные часы появляются вне зависимости как быстро ты начнёшь загребать сообщения. А тут всё абсолютно невидимо, ровно так как надо.
А нельзя ли запускать свое приложение с флагом SW_HIDE ?
Тогда песочных часов не будет.
0
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
29.08.2015, 09:55
Цитата Сообщение от Убежденный Посмотреть сообщение
А нельзя ли запускать свое приложение с флагом SW_HIDE ?
Из explorer'а можно так запустить или только CreateProcess?
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
29.08.2015, 10:19
Не понял вопрос.
0
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
29.08.2015, 13:30
Убежденный, можно ли запустить приложение с флагом SW_HIDE из проводника или надо писать "лаунчер" для таких целей?
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
29.08.2015, 13:34
Цитата Сообщение от Enno Посмотреть сообщение
можно ли запустить приложение с флагом SW_HIDE из проводника
Почему нет ?
Заинжектить свой код в проводник, оттуда позвать CreateProcess.
Только я все равно пока не врубился, зачем нам проводник...
0
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
29.08.2015, 14:32
Цитата Сообщение от Убежденный Посмотреть сообщение
Заинжектить свой код в проводник
На каждой машине инжектить?
Цитата Сообщение от Убежденный Посмотреть сообщение
Только я все равно пока не врубился, зачем нам проводник...
Прога запускается стандартными методами оболочки. Надо чтобы прога запускалась без интерфейса, а не была запускаема без интерфейса.
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
29.08.2015, 14:38
Тогда обычное не консольное приложение (subsystem = windows), которое
не создает окон и других видимых поверхностей. Для того, чтобы не было
"песочных часов", создаем цикл обработки оконных сообщений, можно в
отдельном потоке. Ну да, на 0.05 секунды курсор может и дрогнуть, но не
думаю, что это кого-то испугает. Он все равно может дергаться, пока
приложение еще загружается в память.

Вряд ли есть другие варианты, не относящиеся к категории "диких".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.08.2015, 14:38
Помогаю со студенческими работами здесь

Спрятать или убрать консоль при запуске приложения
Доброго времени суток! Мне не хватает пары моментов. 1) Нужно спрятать или вообще убрать консоль при запуске приложения. {$apptype...

Как заставить консоль Rails2 показывать sql-запросы?
Вот поведение rails4: $ rails c Loading development environment (Rails 4.2.4) 2.0.0-p643 :001 > Role.first Role Load (0.9ms) ...

Можно ли спрятать картинку?
Добрый вечер. Есть сайт на вордпрессе, хочу при нажатии на картинку получать поочередный просмотр 5 изображений. Мучался с плагинами но...

Как можно спрятать cmd.exe?
Приветствую Всех! Подскажите пожалуйста как можно спрятать cmd.exe? Чтобы на экране монитора не появлялось окно cmd.exe Я написал...

Можно ли в дизайнере не показывать контролы
Собственно вопрос. На форме накидано много контролов. До нижних уже не так просто добраться. А если учесть, что рядом с ними нужно ставить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru