begin process at 2012 05 27 18:58:03
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Système

 > NOUVELLE VERSION CHERCHE LES LECTEURS

NOUVELLE VERSION CHERCHE LES LECTEURS


 Information sur la source

Note :
Aucune note
Catégorie :Système Niveau :Débutant Date de création :12/01/2002 Date de mise à jour :16/01/2002 20:42:08 Vu :5 459

Auteur : zorque

Ecrire un message privé
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Ce programme affiche la liste des lecteurs present sur votre pc et indique le type de lecteur et sa capaciter.
Le lecteur logique n'affiche pas toutes les informations si vous avez la solucion laisser moi un message

Compiler sous win2000 avec vc++ 6  

Source

  • #include <iostream.h>
  • #include <stdio.h>
  • #include <windows.h>
  • #include <lmcons.h>
  • #define NDRIVE 25 // nombre de lecteur maxi (alphabet donc 26 a=0 ..... z = 25)
  • unsigned int DriveCount = -1; // compter de lecteur trouver (le premier lecteur est mis sur 0)
  • char lettrelecteur[1]; // la lettre du lecteur (A, B, C ,.......)
  • int choie;
  • struct GETDRIVEINFO
  • {
  • // Information sur le lecteur obtenue par GetDriveType
  • unsigned int ID;
  • char Lecteur[1];
  • LPTSTR Type;
  • // Information sur le lecteur obtenue par GetVolumeInformation
  • char VolumeName[UNLEN+1];
  • LPDWORD SerialNumber;
  • LPDWORD MaxComponent;
  • LPDWORD FileSysFlag;
  • char SysName[UNLEN+1];
  • // Taille du lecteur avec GetDiskFreeSpace
  • unsigned long SectorsPerCluster;
  • unsigned long BytesPerSectors;
  • unsigned long FreeCluster;
  • unsigned long TotalNumberOfCluster;
  • };
  • GETDRIVEINFO gDriveInfo[NDRIVE];
  • void FindDrive();
  • void GetDriveInfo(int ID);
  • DWORD SysSize = UNLEN+1;
  • DWORD VolumeSize = UNLEN+1;
  • int main()
  • {
  • cout << "Recherche des lecteurs en cours ... ";
  • FindDrive();
  • cout << "... Recherche terminer\n\n";
  • for(;;)
  • {
  • for(int nb = 0; nb < (DriveCount+1); nb++)
  • cout << "Tapper : " << gDriveInfo[nb].ID << " pour avoir des informations sur le lecteur : " << gDriveInfo[nb].Lecteur << "\n";
  • cout << "\nTapper : 27 pour quitter l'application\n\n"
  • << "-->";
  • cin >> choie;
  • if(choie > -1 && choie < (DriveCount+1))
  • GetDriveInfo(choie);
  • else if(choie == 27)
  • return 0;
  • else
  • cout << "\nVotre choix ne fait pas partie de la liste !!\n\n";
  • }
  • return 0;
  • }
  • void FindDrive()
  • {
  • HRESULT hr;
  • int Count;
  • for(Count = 65; Count <= 90; Count++)
  • {
  • char Buff = (char) Count;
  • sprintf(lettrelecteur, "%c:", Buff);
  • hr = GetDriveType(lettrelecteur);
  • switch(hr)
  • {
  • case 2:
  • DriveCount++;
  • gDriveInfo[DriveCount].ID = DriveCount;
  • sprintf(gDriveInfo[DriveCount].Lecteur,lettrelecteur);
  • gDriveInfo[DriveCount].Type = "Lecteur de disquette";
  • break;
  • case 3:
  • DriveCount++;
  • gDriveInfo[DriveCount].ID = DriveCount;
  • sprintf(gDriveInfo[DriveCount].Lecteur,lettrelecteur);
  • gDriveInfo[DriveCount].Type = "Disque dur";
  • break;
  • case 4:
  • DriveCount++;
  • gDriveInfo[DriveCount].ID = DriveCount;
  • sprintf(gDriveInfo[DriveCount].Lecteur,lettrelecteur);
  • gDriveInfo[DriveCount].Type = "Lecteur amovible ou réseau";
  • break;
  • case 5:
  • DriveCount++;
  • gDriveInfo[DriveCount].ID = DriveCount;
  • sprintf(gDriveInfo[DriveCount].Lecteur,lettrelecteur);
  • gDriveInfo[DriveCount].Type = "Lecteur CD/DVD";
  • break;
  • case 6:
  • DriveCount++;
  • gDriveInfo[DriveCount].ID = DriveCount;
  • sprintf(gDriveInfo[DriveCount].Lecteur,lettrelecteur);
  • gDriveInfo[DriveCount].Type = "Disque virtuel";
  • break;
  • default:
  • break;
  • }
  • }
  • }
  • void GetDriveInfo(int ID)
  • {
  • unsigned long freespace, usespace, totspace;
  • GetVolumeInformation(gDriveInfo[ID].Lecteur,
  • gDriveInfo[ID].VolumeName,
  • VolumeSize,
  • gDriveInfo[ID].SerialNumber,
  • gDriveInfo[ID].MaxComponent,
  • gDriveInfo[ID].FileSysFlag,
  • gDriveInfo[ID].SysName,
  • SysSize);
  • GetDiskFreeSpace(gDriveInfo[ID].Lecteur,
  • &gDriveInfo[ID].SectorsPerCluster,
  • &gDriveInfo[ID].BytesPerSectors,
  • &gDriveInfo[ID].FreeCluster,
  • &gDriveInfo[ID].TotalNumberOfCluster);
  • freespace = ((gDriveInfo[ID].FreeCluster
  • * gDriveInfo[ID].SectorsPerCluster
  • * gDriveInfo[ID].BytesPerSectors)/1024)/1024;
  • totspace = ((gDriveInfo[ID].TotalNumberOfCluster
  • * gDriveInfo[ID].SectorsPerCluster
  • * gDriveInfo[ID].BytesPerSectors)/1024)/1024;
  • usespace = totspace - freespace;
  • cout << "\n\n****************************************"
  • << "\nLettre du lecteur : " << gDriveInfo[ID].Lecteur
  • << "\nType de lecteur : " << gDriveInfo[ID].Type
  • << "\nNom de volume : " << gDriveInfo[ID].VolumeName
  • << "\nSysteme de fichier : " << gDriveInfo[ID].SysName
  • << "\n****************************************"
  • << "\nCapacite : " << totspace << " Mo"
  • << "\nEspace utiliser : " << usespace << " Mo"
  • << "\nEspace libre : " << freespace << " Mo"
  • << "\n****************************************\n\n";
  • }
#include <iostream.h>
#include <stdio.h>
#include <windows.h>
#include <lmcons.h>

#define NDRIVE	25 // nombre de lecteur maxi (alphabet donc 26 a=0 ..... z = 25)

unsigned int DriveCount = -1;	// compter de lecteur trouver (le premier lecteur est mis sur 0) 
char lettrelecteur[1];			// la lettre du lecteur (A, B, C ,.......)
int choie;

struct GETDRIVEINFO
{
	// Information sur le lecteur obtenue par GetDriveType
	unsigned int	ID;
	char			Lecteur[1];
	LPTSTR			Type;

	// Information sur le lecteur obtenue par GetVolumeInformation
	char			VolumeName[UNLEN+1];		
	LPDWORD			SerialNumber;
	LPDWORD			MaxComponent;
	LPDWORD			FileSysFlag;
	char			SysName[UNLEN+1];

	// Taille du lecteur avec GetDiskFreeSpace
	unsigned long SectorsPerCluster;
	unsigned long BytesPerSectors;
	unsigned long FreeCluster;
	unsigned long TotalNumberOfCluster;
	
};

GETDRIVEINFO gDriveInfo[NDRIVE];

void FindDrive();
void GetDriveInfo(int ID);

DWORD			SysSize		= UNLEN+1;
DWORD			VolumeSize	= UNLEN+1;



int main()
{
	cout << "Recherche des lecteurs en cours ... ";
	FindDrive();
	cout << "... Recherche terminer\n\n";

	for(;;)
	{
		for(int nb = 0; nb < (DriveCount+1); nb++)
			cout << "Tapper : " << gDriveInfo[nb].ID << " pour avoir des informations sur le lecteur : " << gDriveInfo[nb].Lecteur << "\n";

		cout << "\nTapper : 27 pour quitter l'application\n\n"
			 << "-->";
		cin >> choie;
	
		if(choie > -1 && choie < (DriveCount+1))
			GetDriveInfo(choie);
		else if(choie == 27)
			return 0;
		else 
			cout << "\nVotre choix ne fait pas partie de la liste !!\n\n";
	}

	return 0;
}

void FindDrive()
{
	HRESULT hr;
	int Count;

	for(Count = 65; Count <= 90; Count++)
	{
		char Buff = (char) Count;
		sprintf(lettrelecteur, "%c:", Buff); 
		hr = GetDriveType(lettrelecteur);
		
		switch(hr)
		{
		case 2:
			DriveCount++;
			gDriveInfo[DriveCount].ID = DriveCount;
			sprintf(gDriveInfo[DriveCount].Lecteur,lettrelecteur);
			gDriveInfo[DriveCount].Type = "Lecteur de disquette";	
			break;
		case 3:
			DriveCount++;
			gDriveInfo[DriveCount].ID = DriveCount;
			sprintf(gDriveInfo[DriveCount].Lecteur,lettrelecteur);
			gDriveInfo[DriveCount].Type = "Disque dur";
			break;

		case 4:
			DriveCount++;
			gDriveInfo[DriveCount].ID = DriveCount;
			sprintf(gDriveInfo[DriveCount].Lecteur,lettrelecteur);
			gDriveInfo[DriveCount].Type = "Lecteur amovible ou réseau";
			break;

		case 5:
			DriveCount++;
			gDriveInfo[DriveCount].ID = DriveCount;
			sprintf(gDriveInfo[DriveCount].Lecteur,lettrelecteur);
			gDriveInfo[DriveCount].Type = "Lecteur CD/DVD";
			break;

		case 6:
			DriveCount++;
			gDriveInfo[DriveCount].ID = DriveCount;
			sprintf(gDriveInfo[DriveCount].Lecteur,lettrelecteur);
			gDriveInfo[DriveCount].Type = "Disque virtuel";

			break;

		default:
			break;
		}
	}
}

void GetDriveInfo(int ID)
{
	unsigned long freespace, usespace, totspace;

	GetVolumeInformation(gDriveInfo[ID].Lecteur,
						 gDriveInfo[ID].VolumeName,
						 VolumeSize,
						 gDriveInfo[ID].SerialNumber,
						 gDriveInfo[ID].MaxComponent,
						 gDriveInfo[ID].FileSysFlag,
						 gDriveInfo[ID].SysName,
						 SysSize);

	GetDiskFreeSpace(gDriveInfo[ID].Lecteur, 
					 &gDriveInfo[ID].SectorsPerCluster,
					 &gDriveInfo[ID].BytesPerSectors,
					 &gDriveInfo[ID].FreeCluster,
					 &gDriveInfo[ID].TotalNumberOfCluster);

	freespace = ((gDriveInfo[ID].FreeCluster
			    * gDriveInfo[ID].SectorsPerCluster
			    * gDriveInfo[ID].BytesPerSectors)/1024)/1024;

	totspace = ((gDriveInfo[ID].TotalNumberOfCluster
			   * gDriveInfo[ID].SectorsPerCluster
			   * gDriveInfo[ID].BytesPerSectors)/1024)/1024;

	usespace = totspace - freespace;

	cout << "\n\n****************************************" 
		 << "\nLettre du lecteur : " << gDriveInfo[ID].Lecteur
		 << "\nType de lecteur : " << gDriveInfo[ID].Type 
		 << "\nNom de volume : " << gDriveInfo[ID].VolumeName 
		 << "\nSysteme de fichier : " << gDriveInfo[ID].SysName 
		 << "\n****************************************"
		 << "\nCapacite : " << totspace << " Mo"
		 << "\nEspace utiliser : " << usespace << " Mo"
		 << "\nEspace libre : " << freespace << " Mo"
		 << "\n****************************************\n\n";
}



 Sources du même auteur

Source avec Zip LECTURE D'UN FICHIER PAK UTILISER DANS QUAKE
Source avec Zip INFORME DE LA CAPACITER DES DISQUES DURS(INTERFACE WIN32)

 Sources de la même categorie

Source avec Zip Source avec une capture INFORMATION PROCESSEUR (CPUID) par Devils_Tiger
Source avec Zip Source avec une capture LECTURE TEMPÉRATURE PROCESSEUR par Devils_Tiger
Source avec Zip Source avec une capture LECTURE FRÉQUENCE PROCESSEUR par Devils_Tiger
Source avec Zip Source avec une capture UNE LISTE HÉTÉROGÈNE DOUBLEMENT CHAINÉE par pgl10
Source avec Zip Source avec une capture POUR AFFICHER LES CARACTÈRES ACCENTUÉS SOUS WINDOWS EN MODE ... par pgl10

Commentaires et avis

Commentaire de redam le 19/04/2005 09:51:32

Je m'étonne de tourner sur un disque dur de 0 MO !!
Les autres drives fonctionnent correctement et le code est clair.
Je vais tenter de trouver le problème... Je compile également sous win2000 avec vc++6.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,437 sec (4)

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