Utilisation de la oculeur sous windows et linux

Résolu
cs_christophedlr Messages postés 267 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 23 août 2023 - 29 déc. 2006 à 18:47
cs_christophedlr Messages postés 267 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 23 août 2023 - 30 déc. 2006 à 10:55
Bonsoir à tous,

Je voudrais savoir si il y a un moyen d'utiliser de la couleur dans la console DOS donc souw windows et la console Linux.

J'ai trouvé plusieurs sources sur ce site, mais je voudrais une solution qui soit portable is possible.

Merci d'avance.

8 réponses

cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
30 déc. 2006 à 08:34
Une simple piste, mais sous linux c'est un code de couleur inséré dans le texte il me semble.

http://laptopgun.blogspot.com/
<
3
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
30 déc. 2006 à 10:30
Salut

J'ai deja posé cette question sur le forum. Pour linux c'est simple t'as qu'a passer un code special.

m_conio.h:
/*m_conio header file*/

#define M_BLACK_EX 30
#define M_RED_EX 31
#define M_GREEN_EX 32
#define M_YELLOW_EX 33
#define M_BLUE_EX 34
#define M_PURPLE_EX 35
#define M_CYAN_EX 36
#define M_WHITE_EX 37

#define M_BLACK 90
#define M_RED 91
#define M_GREEN 92
#define M_YELLOW 93
#define M_BLUE 94
#define M_PURPLE 95
#define M_CYAN 96
#define M_WHITE 97

#define M_NORMAL 0
#define M_BOLD 1

void set_color(int,int);
void reset_color();

m_conio.c :
#include <stdio.h>

void set_color(int a, int b)
{
printf("\x1B[%d;%dm",a,b);
}

void reset_color()
{
printf("\x1B[0m");
}

Pour windows c'est unpeu plus chiant car il faut utiliser les APIs.


et pour placer le curseur a un endroit donné de la console j'ai ca:

#ifdef WIN32

/*APIs used only by windows*/

#include <windows.h>

#endif


#ifdef WIN32

    /*Windows version*/

    void gotoxy(SHORT x, SHORT y)

    {

        COORD coord;

        HANDLE  HCmd;


        coord.X = x;

        coord.Y = y;

        HCmd= GetStdHandle(STD_OUTPUT_HANDLE); //on creer un handle de sortie sur le cmd.

        SetConsoleCursorPosition(HCmd, coord);

    }

#else

    /*Unix version*/

    void gotoxy(int X, int Y)

    {

        printf("\x1b[%d;%dH",X,Y);

    }

#endif

goast_tu

<hr size="2" width="100%" />Trafic web gratuit!!!
3
goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
30 déc. 2006 à 10:37
Ah j'ai oublié le changement de couleurs pour windows:

void textattr(int _attr) {

     SetConsoleTextAttribute (GetStdHandle(STD_OUTPUT_HANDLE), _attr);

}

<hr size="2" width="100%" />Trafic web gratuit!!!
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
29 déc. 2006 à 19:51
N'existe pas cette utopie de portable, c'est écrire chaque code dans des #ifdef" dans un même fichier au lieu de faire du propre pour chacun dans des différents dossiers.

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_christophedlr Messages postés 267 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 23 août 2023 5
29 déc. 2006 à 22:43
Salut,

Merci pour ta réponse.
Et pour qu'elles sont les fonctions pour windows et pour linux pour la couleur ?

Merci d'avance.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
29 déc. 2006 à 22:56
Regarde dans MSDN partant de SetConsoleTextAttribute() et tu auras le reste.
Me semble qu'il y a deja source sur cela sur cppfrance:
http://www.google.com/custom?domains=cppfrance.com&q=SetConsoleTextAttribute&sa=Rechercher&sitesearch=cppfrance.com

ciao...
BruNews, MVP VC++
0
cs_christophedlr Messages postés 267 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 23 août 2023 5
29 déc. 2006 à 23:00
Merci de ton aide, vais voir cela pour Windows, et pour linux faut que je cherche à quoi sur google ?
0
cs_christophedlr Messages postés 267 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 23 août 2023 5
30 déc. 2006 à 10:55
Merci pour vos réponses.
0
Rejoignez-nous