Ich googelte nach Informationen darüber, wie man das eigene Konsolenfenster versteckt. Erstaunlicherweise waren die einzigen Lösungen, die ich finden konnte, hackige Lösungen, bei denen FindWindow()
das Konsolenfenster anhand seines Titels gefunden wurde . Ich habe mich etwas tiefer mit der Windows-API befasst und festgestellt, dass es einen viel besseren und einfacheren Weg gibt. Deshalb wollte ich ihn hier veröffentlichen, damit andere ihn finden können.
Wie können Sie das Konsolenfenster ausblenden (und anzeigen), das meiner eigenen C # -Konsolenanwendung zugeordnet ist?
c#
console
console-application
Timwi
quelle
quelle
csproj
Datei manuell bearbeiten . Visual Studio verfügt hierfür nicht über eine grafische Benutzeroberflächecsproj
. Die Einstellung wird jedoch berücksichtigt, wenn Sie die Datei korrekt bearbeiten .using System.Runtime.InteropServices;
const int SW_SHOWMINIMIZED = 2;
und dann aufShowWindow(handle, SW_SHOWMINIMIZED);
diese Weise die Konsole nicht ausgeblendet, sondern nur minimiert wird.Gehen Sie einfach zu den Eigenschaften der Anwendung und ändern Sie den Ausgabetyp von Konsolenanwendung in Windows-Anwendung .
quelle
Warum benötigen Sie eine Konsolenanwendung, wenn Sie die Konsole selbst ausblenden möchten? =)
Ich empfehle, den Projektausgabetyp auf Windows-Anwendung anstelle von Konsolenanwendung festzulegen. Das Konsolenfenster wird nicht angezeigt, es werden jedoch alle Aktionen ausgeführt, wie dies bei der Konsolenanwendung der Fall ist.
quelle
TopShelf
ermöglicht es Ihnen , laufenConsoles
als Dienst und das bricht , dassSie können das Gegenteil tun und den Anwendungsausgabetyp auf: Windows-Anwendung festlegen. Fügen Sie diesen Code dann am Anfang der Anwendung hinzu.
Dieser Code zeigt die Konsole an, wenn dies der Fall
showConsole
isttrue
quelle
Siehe meinen Beitrag hier:
Konsole in Windows-Anwendung anzeigen
Sie können eine Windows-Anwendung (mit oder ohne Fenster) erstellen und die Konsole wie gewünscht anzeigen. Mit dieser Methode wird das Konsolenfenster nur angezeigt, wenn Sie es explizit anzeigen. Ich verwende es für Dual-Mode-Anwendungen, die ich je nach Öffnung entweder im Konsolen- oder im GUI-Modus ausführen möchte.
quelle
"Nur um sich zu verstecken" können Sie:
Ändern Sie den Ausgabetyp von Konsolenanwendung in Windows-Anwendung .
Und stattdessen
Console.Readline/key
können Sienew ManualResetEvent(false).WaitOne()
am Ende verwenden, um die App am Laufen zu halten.quelle
Wenn Sie nicht vom Fenstertitel abhängen möchten, verwenden Sie Folgendes:
...
quelle
Wenn Sie keine Probleme beim Integrieren einer Kleinserienanwendung haben, gibt es dieses Programm namens Cmdow.exe , mit dem Sie Konsolenfenster basierend auf dem Konsolentitel ausblenden können.
Fügen Sie die Exe zur Lösung hinzu, setzen Sie die Build-Aktion auf "Inhalt", setzen Sie "In Ausgabeverzeichnis kopieren" auf das, was zu Ihnen passt, und cmdow blendet das Konsolenfenster aus, wenn es ausgeführt wird.
Um die Konsole wieder sichtbar zu machen, ändern Sie einfach die Argumente
quelle