Texte de couleur en console dos ( vc6)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 130 fois - Téléchargée 35 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

Messages postés
20
Date d'inscription
mardi 22 mai 2007
Statut
Membre
Dernière intervention
4 juin 2007

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!!
Messages postés
51
Date d'inscription
mercredi 25 décembre 2002
Statut
Membre
Dernière intervention
17 mars 2008

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 :)
Messages postés
20
Date d'inscription
mardi 22 mai 2007
Statut
Membre
Dernière intervention
4 juin 2007

Trés joli source!!! Et comment fait-on si l'on veut copier une seule phrase en couleur??

Merci d'avance..
Messages postés
51
Date d'inscription
mercredi 25 décembre 2002
Statut
Membre
Dernière intervention
17 mars 2008

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);
Messages postés
21
Date d'inscription
lundi 24 mai 2004
Statut
Membre
Dernière intervention
25 mai 2005

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.