Скрыть окно консоли в консольном приложении 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
Другие вопросы по тегам