begin process at 2010 02 10 13:18:39
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > TEXTE DE COULEUR EN CONSOLE DOS ( VC6)

TEXTE DE COULEUR EN CONSOLE DOS ( VC6)


 Description

Cliquez pour voir la capture en taille normale
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

  • #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;
  • }
#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 ?


 Sources du même auteur

Source avec Zip EXEMPLE COMPLET RELATIF A MON EXEMPLE DE TOOLTIP PERSONALISÉ...
CRÉER UN TOOLTIP EN FORME DE BULLE SOUS WINDOWS AVEC UNE IMA...
LISTEUR DE FICHIER DOS
Source avec Zip Source avec une capture CRÉATION D'UN RACOURCI POUR WINDOWS AVEC INTERFACE SIMPLIFIÉ...
Source avec Zip Source avec une capture EX METTRE UNE ICONE SUR UN BOUTON AVEC MFC

 Sources de la même categorie

Source avec Zip CALLOCATOR par troctsch
Source avec Zip HEAPCOLLECTOR par troctsch
Source avec Zip GÉNÉRE UN TABLEAU DE CARACTÉRE AU FORMAT C CONTENANT LE BYTE... par kertimanoff
FRACTIONS EGYPTIENNES par lptm974
BITOPERATOR par FrancoisGauthier

Commentaires et avis

Commentaire de Kirua le 25/08/2004 02:15:31

il n'y a pas moyen de faire ça de manière portable?

Commentaire de djl le 25/08/2004 08:16:27

ce sont des appels systemes (forcement, le c ne connait pas la console), il faudrait une bibliotheque portable qui encapsule ces appels
ya ncurses sous linux et je crois que  ca va etre porté sous windows

Commentaire de Nebula le 25/08/2004 10:54:35

Pour les maniaques de la portabilités, y'a MinGW qui fournit un compilateur (GCC, que j'utilise) et un shell Bash (donc, qui gère les séquences ANSI, que je n'utilise pas en revanche). Et pour les maniaques du portable instable, y'a Cygwin :p

Commentaire de douggyfresh le 26/08/2004 18:46:48

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.

Commentaire de Papy67 le 27/08/2004 05:14:04

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);

Commentaire de rosco91 le 01/06/2007 16:11:19

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

Merci d'avance..

Commentaire de Papy67 le 08/06/2007 20:59:11

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 :)

Commentaire de rosco91 le 11/06/2007 08:47:05

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!!

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,499 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales