Console Color ändern

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

Hi,

Ich würde gerne die Textfarbe in der Konsole ändern. Ich hab das hier gefunden:
( http://code.activestate.com/recipes/496 ... ute-color/ )

Code: Alles auswählen

# See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winprog/winprog/windows_api_reference.asp
# for information on Windows APIs.
STD_INPUT_HANDLE = -10
STD_OUTPUT_HANDLE= -11
STD_ERROR_HANDLE = -12

FOREGROUND_BLUE = 0x01 # text color contains blue.
FOREGROUND_GREEN= 0x02 # text color contains green.
FOREGROUND_RED  = 0x04 # text color contains red.
FOREGROUND_INTENSITY = 0x08 # text color is intensified.
BACKGROUND_BLUE = 0x10 # background color contains blue.
BACKGROUND_GREEN= 0x20 # background color contains green.
BACKGROUND_RED  = 0x40 # background color contains red.
BACKGROUND_INTENSITY = 0x80 # background color is intensified.

import ctypes

std_out_handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)

def set_color(color, handle=std_out_handle):
    """(color) -> BOOL
    
    Example: set_color(FOREGROUND_GREEN | FOREGROUND_INTENSITY)
    """
    bool = ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color)
    return bool

print "hi"
set_color(BACKGROUND_RED | FOREGROUND_BLUE)
print "moop"
Leider klappt das nur für Windows und es sind auch nur 4 Farben zur verfügung.
Geht das irgendwie platformübergreifend ( oder zumindest auf 2 arten, damit man die im programm verbinden kann mit

Code: Alles auswählen

if sys.platform == "win32":
) und mit mehr werten? ich hätte gerne mehrere grün töne ;)
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

Code: Alles auswählen

os.system('color 2A')
Nur ein beispiel, die weiteren farben findest du in der konsolen hilfe.
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

Hi,

also zu os.system("color"):

Code: Alles auswählen

    0 = Black       8 = Gray
    1 = Blue        9 = Light Blue
    2 = Green       A = Light Green
    3 = Aqua        B = Light Aqua
    4 = Red         C = Light Red
    5 = Purple      D = Light Purple
    6 = Yellow      E = Light Yellow
    7 = White       F = Bright White
Kannte ich schon ;) Aber das waren mir ein bisschen zu wenig farben.
Gibt es noch andere alternativen?

Zu dem anderen, ich denke das ist das was ich suche, blos bin ich gerade auf windows maschine und kann das nicht ausprobieren. ( Kann man da auch hexwerte eingeben? )

Danke für die schnellen antworten.
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

Ich weiß es nicht, würde mich selber interessieren. Es wäre doch toll einzellne worte in farbe darzustellen. Wenn du was weißt, sag mir bitte bescheid, ich werd das gleiche tun.
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ja, die Alternative ist, den verlinkten Thread bis zum Ende zu lesen, um dann auf den letzten Beitrag zu stoßen, welcher beispielhaft zeigt, wie man die Farben über die Windows API ändern lassen kann.
Antworten