Ich habe eine allgemeine Lösung zu teilen:
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);
}
}
}
Nehmen Sie diese Klasse einfach in Ihr Projekt auf und rufen Sie an Magician.DisappearConsole();
.
Eine Konsole blinkt, wenn Sie das Programm durch Klicken starten. Bei der Ausführung an der Eingabeaufforderung verschwindet die Eingabeaufforderung sehr kurz nach der Ausführung.
Ich mache das für einen Discord Bot, der als unsichtbarer Prozess für immer im Hintergrund meines Computers läuft. Es war einfacher, als TopShelf dazu zu bringen, für mich zu arbeiten. Ein paar TopShelf-Tutorials sind fehlgeschlagen, bevor ich dies mit Hilfe von Code geschrieben habe, den ich an anderer Stelle gefunden habe. ; P.
Ich habe auch versucht, die Einstellungen in Visual Studio> Projekt> Eigenschaften> Anwendung einfach so zu ändern, dass sie als Windows-Anwendung anstelle einer Konsolenanwendung gestartet werden. Durch etwas an meinem Projekt konnte meine Konsole dadurch nicht ausgeblendet werden - möglicherweise, weil DSharpPlus beim Start eine Konsole starten muss . Ich weiß es nicht. Was auch immer der Grund sein mag, diese Klasse ermöglicht es mir, die Konsole einfach zu töten, nachdem sie aufgetaucht ist.
Hoffe, dieser Magier hilft jemandem. ;)