Frage: Ich habe ein Konsolenprogramm, das nicht gesehen werden sollte. (Es setzt IIS und löscht temporäre Dateien.)Wie kann ich ein Konsolenfenster ausblenden?
Im Moment kann ich das Fenster direkt nach dem Start wie folgt verstecken verwalten zu:
für ein Blinzeln eines zweitenstatic void Main(string[] args)
{
var currentProcess = System.Diagnostics.Process.GetCurrentProcess();
Console.WriteLine(currentProcess.MainWindowTitle);
IntPtr hWnd = currentProcess.MainWindowHandle;//FindWindow(null, "Your console windows caption"); //put your console window caption here
if (hWnd != IntPtr.Zero)
{
//Hide the window
ShowWindow(hWnd, 0); // 0 = SW_HIDE
}
Das Problem ist, das zeigt das Fenster . Gibt es einen Konstruktor für ein Konsolenprogramm, wo ich das Fenster verstecken kann, bevor es angezeigt wird?
Und zweitens:
Ich benutze
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
und ich weiß nicht wie die 32 darin. Gibt es eine Möglichkeit, dies ohne DllImport zu tun?
Ein .NET Weg?
Warum magst du den Namen von 'user32.dll' nicht? –
'user32.dll' ist nicht speziell eine 32-Bit-DLL und ist in allen aktuellen Versionen von Windows verfügbar, unabhängig von der Architektur. Der Name ist ein Vermächtnis, das auf NT4 zurückgeht. –