Eu tenho uma solução geral para compartilhar:
using System;
using System.Runtime.InteropServices;
namespace WhateverNamepaceYouAreUsing
{
class Magician
{
[DllImport("kernel32.dll")]
static extern IntPtr GetConsoleWindow();
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
const int HIDE = 0;
const int SHOW = 5;
public static void DisappearConsole()
{
ShowWindow(GetConsoleWindow(), HIDE);
}
}
}
Basta incluir esta classe no seu projeto e ligar Magician.DisappearConsole();
.
Um console piscará quando você iniciar o programa clicando nele. Ao executar no prompt de comando, o prompt de comando desaparece logo após a execução.
Eu faço isso para um Discord Bot que roda para sempre no fundo do meu computador como um processo invisível. Era mais fácil do que fazer o TopShelf trabalhar para mim. Alguns tutoriais do TopShelf falharam antes de eu escrever isso com alguma ajuda do código que encontrei em outro lugar. ; P
Eu também tentei simplesmente alterar as configurações no Visual Studio> Projeto> Propriedades> Aplicativo para iniciar como um aplicativo do Windows em vez de um aplicativo de console, e algo sobre o meu projeto impediu que isso ocultasse meu console - talvez porque o DSharpPlus exija iniciar um console na inicialização . Eu não sei. Seja qual for o motivo, essa classe me permite matar facilmente o console depois que ele aparece.
Espero que este mago ajude alguém. ;)