1

Eine Konsolenanwendung mit C#/Visual Studio 2017 erstellt. Wenn ich die Konsolenanwendung von VS oder einem Windows 10-Computer aus starte, verwendet sie die Standardeinstellungen für meine Konsolenanwendung (Optionen/Schriftart/Layout/Farben). Wenn ich versuche, es auf einem Testserver mit Windows Server 2012 R2 auszuführen, werden zufällige Einstellungen verwendet (kleine Puffergröße/große Schrift/unregelmäßig geformtes Fenster). Ich habe versucht:Wie wird die C# -Konsolenanwendung für die Verwendung der Standardkonsoleneinstellungen (Windows Server 2012) festgelegt?

  • Einstellung Defaults auf Server (2012) auf gleiche Standardwerte auf Local (Windows 10/VS)
  • Programmatically Eigenschaften Konsolenfenster Einstellung
  • Ausführen von Command Line

Wenn ich die Anwendung über die Befehlszeile (program.exe) ausführe, verwendet sie die Standardeinstellungen. Aber wenn ich auf die ausführbare Datei klicke, tut es das nicht. Was fehlt mir hier?

+0

Das Betriebssystem merkt sich die Konsoleneinstellungen nach Benutzerkonto und Anwendungsname. Cmd.exe und yourapp.exe sind nicht identisch. Sie können diese Einstellungen mit Regedit.exe, HCKU/Console Key wieder sehen. Superuser.com ist ein guter Ort, um Fragen zu stellen. –

+0

Super! Es war nicht klar, dass Benutzer- und Anwendungs-Konsolenfenster sich in separaten Einstellungen befanden. Suchen Sie die Einträge und legen Sie die Standardeinstellungen für die Anwendung fest. Sie waren sehr verschieden. Vielen Dank! – Gee

+0

Es basiert nicht auf dem Anwendungsnamen, sondern auf dem ursprünglichen Titel des Konsolenfensters. Wenn Sie beim Aufruf von 'CreateProcess' keinen Fenstertitel über' STARTUPINFO' setzen (z. B. wenn Sie den Befehl 'start' von CMD verwenden), ist der anfängliche Fenstertitel der Anwendungspfad. Wenn eine Konsolenanwendung über eine .lnk-Verknüpfung gestartet wird, werden die Einstellungen von der Verknüpfung und nicht von der Registrierung geladen und in der Verknüpfung gespeichert. – eryksun

Antwort

1

Anscheinend gibt es zwei verschiedene Einstellungen für die Konsole. Eine für das Benutzerkonto und eine weitere für den anfänglichen Konsolenfenstertitel (in diesem Fall meine Anwendung). Ich war in der Lage, die Einstellungen in Regedit.exe, HCKU/Console Key zu sehen und die Einstellungen für meine anfängliche Konsole Fenstertitel zu entfernen und dann die Anwendung (als Admin) ausgeführt und die Standardeinstellungen dort geändert. Danke für die Kommentare!

+0

Die Initialisierung der Konsole wendet zuerst die Standardeinstellungen an ("HKCU \ Console"). Die Fenstertiteleinstellungen ("HKCU \ Console \ [Window Title]") überschreiben die Standardeinstellungen. Anstatt die Registrierung zu verwenden, können die Standardeinstellungen und Fenstertiteleinstellungen über die Dialoge "Standardwerte" und "Eigenschaften" in der GUI festgelegt werden. – eryksun

+0

Wenn Sie eine Anwendung mit einer .lnk-Verknüpfung starten, wird der Pfad zur .lnk-Datei als Fenstertitel übergeben (d. H. 'STARTF_TITLEISLINKNAME' ist in der Startup-Information von' GetStartupInfo' gekennzeichnet). Die Konsolen-API verwendet wiederum die .lnk-Datei für die Fenstertiteleinstellungen und der Dialog "Eigenschaften" ändert die Verknüpfung. – eryksun

Verwandte Themen