У меня есть общее решение, которым можно поделиться:
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);
}
}
}
Просто включите этот класс в свой проект и позвоните Magician.DisappearConsole();
.
Консоль будет мигать при запуске программы, нажав на нее. При выполнении из командной строки командная строка исчезает вскоре после выполнения.
Я делаю это для Discord Bot, который вечно работает на заднем плане моего компьютера как невидимый процесс. Это было проще, чем заставить TopShelf работать на меня. Несколько учебников TopShelf не помогли мне, прежде чем я написал это с помощью кода, который я нашел в другом месте. ; Р
Я также попытался просто изменить настройки в Visual Studio> Проект> Свойства> Приложение для запуска в качестве приложения Windows вместо консольного приложения, и что-то в моем проекте не позволило этому скрыть мою консоль - возможно, из-за того, что DSharpPlus требует запустить консоль при запуске. Я не знаю. Безотносительно причины этот класс позволяет мне легко убить консоль после того, как она появляется.
Надеюсь, этот Маг кому-нибудь поможет. ;)