Console en couleur

Contenu du snippet

Voici une petite classe permettant de changer la couleur du texte que vous affichez dans la console. Il est possible de changer la couleur de fond, et la couleur du texte en elle même. Cette source est tirée d'un exemple chopé sur le site c-sharpcorner.com.

Source / Exemple :


using System;
using System.Runtime.InteropServices;

public class Konsole{
	// Les différentes couleurs possibles.
	public enum CharacterAttributes{
		FOREGROUND_BLUE = 0x0001,
		FOREGROUND_GREEN = 0x0002,
		FOREGROUND_RED = 0x0004,
		FOREGROUND_INTENSITY = 0x0008,
		BACKGROUND_BLUE = 0x0010,
		BACKGROUND_GREEN = 0x0020,
		BACKGROUND_RED = 0x0040,
		BACKGROUND_INTENSITY = 0x0080,
		COMMON_LVB_LEADING_BYTE = 0x0100,
		COMMON_LVB_TRAILING_BYTE = 0x0200,
		COMMON_LVB_GRID_HORIZONTAL = 0x0400,
		COMMON_LVB_GRID_LVERTICAL = 0x0800,
		COMMON_LVB_GRID_RVERTICAL = 0x1000,
		COMMON_LVB_REVERSE_VIDEO = 0x4000,
		COMMON_LVB_UNDERSCORE = 0x8000
	}
	
	// Importation des fonctions de l'API de windows qui nous seront nécesaires
	[DllImport("kernel32.dll", SetLastError=true)]
		private static extern bool SetConsoleTextAttribute(IntPtr hConsoleOutput, CharacterAttributes wAttributes);
		
	[DllImport("kernel32.dll")]
		private static extern IntPtr GetStdHandle(int nStdHandle); 
	
	public Konsole(){}

	// Fonction permettant de changer les attributs de la console
	public static void SetConsoleTextAttribute(CharacterAttributes wAttributes){
		// "GetStdHandle(-11)" retourne la console output... me demandez pas pourquoi le -11.
		SetConsoleTextAttribute(GetStdHandle(-11), wAttributes);
	}
	
	// Permet d'écrire une ligne de texte avec les attributs en cours.
	public static void WriteLine(string str){
		Console.WriteLine(str);
	}
	
	// Permet d'écrire une ligne de texte en changeant les attributs de couleur.
	public static void WriteLine(string str, CharacterAttributes wAttributes){
		SetConsoleTextAttribute(wAttributes);
		Console.WriteLine(str);
	}
	
	// Permet d'écrire du texte avec les attributs en cours.
	public static void Write(string str){
		Console.Write(str);
	}
	
	// Permet d'écrire du texte en changeant les attributs de couleur.
	public static void Write(string str, CharacterAttributes wAttributes){
		SetConsoleTextAttribute(wAttributes);
		Console.Write(str);
	}
}

Conclusion :


Vous allez me demander l'utilité d'un trucs pareil... et bien c'est simple, quand on veut afficher pas mal d'infos dans la console, histoire de corriger quelques bugs, et bien c'est bien sympa de pouvoir s'y retrouver grave à des couleurs, voila.

Ha oui, aussi, vu que toutes les fonctions sont statiques, vous pouvez utiliser la classe comme ca :
Konsole.WriteLine("red", Konsole.CharacterAttributes.FOREGROUND_RED);

ou encore...
Konsole.WriteLine("test");

bref, ca remplace le console habituel.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.