Скрыть окно консоли в консольном приложении C #

106

Дело в том, что я действительно не хочу, чтобы отображалось окно консоли ... но решение должно работать. Я хочу сказать, что я хочу, чтобы приложение работало в фоновом режиме, без появления каких-либо окон.

Пользователь SOF
источник
2
Не могли бы вы дать нам немного больше информации о том, что должно делать приложение? Похоже, это должна быть служба или приложение Windows? Обладая небольшими знаниями об этой цели, мы сможем помочь гораздо больше и предложить лучший способ решить эту проблему.
Дэйв,
Его приложение-кейлоггер. Я использовал службу Windows, но она не может получить ключевые состояния в службе Windows
Пользователь SOF,

Ответы:

188

Измените тип вывода с Консольного приложения на Приложение Windows . Это можно сделать в Visual Studio в Project -> Properties -> Application :

альтернативный текст

Дирк Фольмар
источник
4
Окно консоли мигает и возвращается назад. Как сохранить работу приложения без окон?
Пользователь SOF,
Пользователь @SOF: Как запустить приложение? Двойным щелчком в проводнике или из меню «Пуск»?
Дирк Фоллмар,
я также поставил Console.ReadLine ();
Пользователь SOF,
16
Удалите Console.ReadLine. В этом нет никакого смысла, если у вас нет окна консоли.
Дирк Воллмар
1
@ KarolŻurowski: Идея заключается в том, что вы могли бы использовать это для приложений, которые либо поставляются с некоторой формой пользовательского интерфейса (например, значок на панели задач), либо для приложений, которые выполняют определенную задачу, а затем автоматически закрываются, когда это сделано. Если у вас нет ни того, ни другого, приложение будет работать в фоновом режиме до выхода / завершения работы или до тех пор, пока оно не будет явно убито, например, с помощью диспетчера задач.
Дирк Фоллмар
26

Измените тип вашего приложения на приложение Windows. Ваш код по-прежнему будет работать, но у него не будет окна консоли или стандартного окна Windows, если вы его не создадите.

Сехат
источник
2
Окно консоли мигает и возвращается назад. Как сохранить работу приложения без окон?
Пользователь SOF
Убедитесь, что это не прекратится. Без дополнительной информации действительно нечего сказать. Что делает программа? Он запускает что-то в цикле?
Лассе В. Карлсен
12

Вместо того, Console.Readline/keyчтобы использовать new ManualResetEvent(false).WaitOne()наконец. У меня это хорошо работает.

хаджа камал
источник
3

Может быть, вы хотите попробовать создать приложение службы Windows . Он будет работать в фоновом режиме без какого-либо пользовательского интерфейса.

бла
источник
3
Служба Windows не может получить события нажатия клавиш
пользователь SOF,
1
Службы сильно ограничены в зависимости от вашего приложения, поскольку в Windows Vista они принудительно используются в сеансе 0 и, таким образом, не могут выполнять какие-либо действия в других сеансах, например, показывать всплывающие сообщения.
Мэтт
1
@Matt "ничего не может выполнять в других сессиях" не совсем верно. Вот проект кода для службы, которая открывает командную строку администратора на рабочем столе вошедшего в систему пользователя. codeproject.com/Articles/35773/…
Qodex 09
1

Измените тип вывода с Консольного приложения на Приложение Windows ,

И вместо этого Console.Readline/keyвы можете использовать new ManualResetEvent(false).WaitOne()в конце, чтобы приложение работало.

NT
источник