Wie kann man in cmd ausschließlich die Hintergrundfarbe der Konsole ändern?
Ich möchte in Visual Studio mit C++ etwas programmieren und würde gerne in den Code schreiben das die Hintergrundfarbe der Konsole geändert wird. Leider bekomme ich nur hin die Schriftfarbe zu ändern wenn ich ein Zeichen reinschreibe. Nur wenn ich zwei Zeichen reinschreibe verändert sich auch die Hintergrundfarbe aber eben auch die Zeichenfarbe und das will ich nicht. Hat jemand eine Idee?
2 Antworten
ist nicht so einfach, du kannst nur den gegenwärtigen Zustand von Vorder- und Hintergrundfarbe einlesen und die bestehende Vordergrundfarbe mit dem neuen Hintergrundattribut weitergeben.
https://stackoverflow.com/questions/6460932/change-entire-console-background-color-win32-c
allerdings entzieht es sich mir , wo das Problem liegt , beide Farben in einen definierten Zustand zu bringen?
Wenn Programmierer definierte Farben wünscht setzt er beide. ...und wen er nicht vergessen möchte, welche Farben gerade aktiv sind, speichert er diese in Variablen.
In der Console gibt es keine native Möglichkeit die Farben Auszulesen.
die wohl einfachste Möglichkeit wär die Zuhilfenahme von Powershell ...
powershell.exe (Get-Host).UI.RawUI|find /i "color"
Das umwandeln in der Colorstrings in numerische Werte wäre einfach nur eine Fallunterscheidung...