Texte de couleur en console dos ( vc6)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 549 fois - Téléchargée 37 fois

Contenu du snippet

utilisation des APIs
ce code montre comment ecrire en differentes couleurs dans une console DOS32
affiche un logo en bleu clair et fait un scanne du cossier courrant et affiche le resultat en vert.

Source / Exemple :


#define  _WIN32_WINNT  0x0300
#include <windows.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <shlobj.h>
#define PATH 0x104
#include <shlwapi.h>
#pragma comment(lib,"shlwapi.lib")

WIN32_FIND_DATA FileData;
HANDLE hSearch,fc;
DWORD dwAttrs;
BOOL fFinished = FALSE;
HDC hdc;
CONSOLE_SCREEN_BUFFER_INFO csbiInfo;

char path[PATH];
char buffer[0x64];
char Buffer1[PATH];
char Buffer[PATH];
char szHome[PATH];
char Result[PATH];
char szNewPath[PATH];
int x=0x00;

void logo(){
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x0b);
	printf("ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»\nº  Example de couleur texte Conosle º\nº    Votre nom de compagnie         º\nº Adresse                           º\nº http://www.monsiteweb.com         º\nÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͌\n");
}

void  ScanneFolder(char * dossier){
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x0a);
	hSearch = FindFirstFile("*.*", &FileData); 
        if (hSearch == INVALID_HANDLE_VALUE) {     printf("Aucun fichier trouv?.");     return;} 
		while (!fFinished) { 
		sprintf(szNewPath,"%s\\%s", dossier,FileData.cFileName); //chemin complet
		x++; //incremente valeur de x
		GetShortPathName(szNewPath,Buffer1,256);
		PathCompactPath(hdc,szNewPath,200); //compactage de texte pur n'afficher que 200 pixels
				printf("%.3d\t%s\t%s\n",x,szNewPath,Buffer1);   // affiche le resultat
				if (!FindNextFile(hSearch, &FileData))     {
			if (GetLastError() == ERROR_NO_MORE_FILES)         { 
                                printf("?num?ration termin?e."); 
				fFinished = TRUE; 
			} else   { 
            printf("ERREUR: Impossible de trouver le fichier suivant ."); 
            return;
			} 
		}
	} 
	FindClose(hSearch);
	CloseHandle(fc);     
}

int main(){
	logo();
    SetConsoleTitle("Titre de l'application");
	GetCurrentDirectory(256,szHome);
    ScanneFolder(szHome) ;
    Sleep(5000); //utile pour retarder la fermeture  1s =1000
	return 0;
}

Conclusion :


je trouves moins monotone une aplis console en couleur non ?

A voir également

Ajouter un commentaire Commentaires
rosco91 Messages postés 20 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 4 juin 2007
11 juin 2007 à 08:47
ok!! Ben merci beaucoup pour m'avoir répondu. Je n'avais pas pensé à cette technique, elle n'est pas mauvaise!!! Encore une fois merci!!
cs_Papy67 Messages postés 51 Date d'inscription mercredi 25 décembre 2002 Statut Membre Dernière intervention 17 mars 2008
8 juin 2007 à 20:59
rosco91

tu utilise la fonction

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x0b);//id de la couleur desiree
printf("tapes ton texte\n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0xFF);//poru recuperer ton prompteur en blanc :)
rosco91 Messages postés 20 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 4 juin 2007
1 juin 2007 à 16:11
Trés joli source!!! Et comment fait-on si l'on veut copier une seule phrase en couleur??

Merci d'avance..
cs_Papy67 Messages postés 51 Date d'inscription mercredi 25 décembre 2002 Statut Membre Dernière intervention 17 mars 2008
27 août 2004 à 05:14
douggyfresh -> pour info ca ete ecris avec VC6
ton pb prvient probablement de l'entete :
shlwapi.h
suis pas sur que Borland la fournisse
vire du code :
#include <shlwapi.h>
#pragma comment(lib,"shlwapi.lib")
et dans la fonction ScanneFolder
// PathCompactPath(hdc,szNewPath,200);
douggyfresh Messages postés 21 Date d'inscription lundi 24 mai 2004 Statut Membre Dernière intervention 25 mai 2005
26 août 2004 à 18:46
Je n'en peux dire trop, car j'ai copie la source puis essaye de la compiler sous Borland C++ 5.01. Ben, ca ne marche pas. Donc, avec quel compilateur ca marche? Et comment peut on la rendre compatible avec Borland C++ 5.01.
Afficher les 8 commentaires

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.