Die 16 Farben der Konsole per Quellcode umdefinieren



  • Diw Windows-Konsole kann ja 16 Farben darstellen, die man unter "Eigenschaften", "Farben" ändern kann. Gibt es eine Möglichkeit, das auch im Quellcode zu tun?





  • Das ist es nicht, was ich meine. Bei meiner Frage handelt es sich nicht um das übliche "Wie realisiere ich clrscr, gotoxy und textcolor/textbackground bei neueren Compilern?"
    Meine Frage ist folgende: Wenn man die Konsole öffnet, kann man oben links auf das Icon klicken und dann sieht man unter "Eigenschaften" die 16 Farben, die die Konsole darstellen kann (die Farben, die man im Programm per textcolor bzw. SetConsoleTextAttribute für seine Ausgabe auswählen kann). Diese Farben sind standardmäßig:
    schwarz, dunkelgrau, hellgrau, weiß, dunkelrot, hellrot, dunkelgrün, hellgrün, dunkelblau, hellblau, ocker, gelb, magenta, pink, cyan, himmelblau
    Nun ist es aber möglich, diesen 16 Farbeinträgen komplett neue Werte zuzuweisen. Man kann also für jeden Farbeintrag einen eigenen Wert im RGB-Format angeben und das Aussehen der Konsole somit komplett verändern. Und nun wollte ich wissen: Ist das auch per Quellcode möglich? Gibt es in der WinAPI Funktionen, die es mir ermöglichen, die Farbwerte der 16 Variablen, die standardmäßig auf die oben angegebenen Farben eingestellt sind, zu verändern?



  • Das ist ja sehr interessant, wusste nicht dass man die Farben stufenlos regeln kann. Wenn es Windows kann, dann wird es zwangsläufig auch die entsprechenden API-Funktionen dafür geben. Der Knackpunkt dabei ist nur, ob diese dokumentiert oder undokumentiert sind.

    Ich kann Dir in der Hinsicht leider keinen konkreten Hinweis geben. Aber wenn Du in der MSDN nichts entsprechendes findest, dann könntest Du noch die Exporttabellen der entsprechenden DLLs durchforsten... eventuell findet sich da ein verdächtiger Funktionsname. Ein paar wichtige DLLs, die diese Funktionalitäten enthalten, sind user32.dll , kernel32.dll und sonstige. Habe sie gerade nicht alle im Kopf. Vielleicht wirst du ja fündig. 🙂


Log in to reply