Скрыть окно консоли в консольном приложении C#
Дело в том, что я действительно не хочу, чтобы отображалось окно консоли... но решение должно быть запущено. Суть в том, что я хочу, чтобы приложение работало в фоновом режиме, без появления какого-либо окна.
7 ответов
Измените тип вывода с Консольного приложения на Приложение Windows. Это можно сделать в Project -> Properties -> Application в Visual Studio:
Измените тип вашего приложения на Windows-приложение. Ваш код по-прежнему будет работать, но у него не будет ни окна консоли, ни стандартного окна, если вы его не создадите.
Вместо Console.Readline/key
ты можешь использовать new ManualResetEvent(false).WaitOne()
наконец. Это хорошо работает для меня.
Вы можете использовать user32.dll для этого без vscode
class start
{
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
static void Main()
{
IntPtr h = Process.GetCurrentProcess().MainWindowHandle;
ShowWindow(h, 0);
// Do the rest
Экран по-прежнему мигает, но работает достаточно хорошо
использование
using System.Runtime.InteropServices;
using System.Diagnostics;
Обратите внимание, что я все еще новичок в csharp и не идеален, поэтому не стесняйтесь комментировать и исправлять!
Измените тип вывода с Консольного приложения на Приложение Windows,
И вместо Console.Readline/key
ты можешь использовать new ManualResetEvent(false).WaitOne()
в конце, чтобы приложение работало.
Может быть, вы хотите попробовать создать приложение службы Windows. Он будет работать в фоновом режиме, без какого-либо интерфейса.
Чтобы скомпилировать приложение без окна консоли
csc.exe /target:winexe *.cs