Tengo una solución general para compartir:
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);
}
}
}
Simplemente incluya esta clase en su proyecto y llame Magician.DisappearConsole();
.
Una consola parpadeará cuando inicies el programa haciendo clic en ella. Cuando se ejecuta desde el símbolo del sistema, el símbolo del sistema desaparece poco después de la ejecución.
Hago esto para un Discord Bot que se ejecuta para siempre en el fondo de mi computadora como un proceso invisible. Fue más fácil que hacer que TopShelf funcione para mí. Un par de tutoriales de TopShelf me fallaron antes de escribir esto con ayuda del código que encontré en otro lugar. ;PAGS
También intenté simplemente cambiar la configuración en Visual Studio> Proyecto> Propiedades> Aplicación para iniciar como una aplicación de Windows en lugar de una aplicación de consola, y algo sobre mi proyecto evitó que esto ocultara mi consola, tal vez porque DSharpPlus exige iniciar una consola al inicio . No lo sé. Cualquiera sea la razón, esta clase me permite matar fácilmente la consola después de que aparezca.
Espero que este mago ayude a alguien. ;)