//**********************************************************************;
//* Drive_detect *;
//*--------------------------------------------------------------------*;
//* Fonction : Programme permet de donner les informations sur*;
//* les types des différents lecteurs . *;
//* Un programme écrit en langage C++ *;
//*--------------------------------------------------------------------*;
//* Auteur : Polo12 avec l'aide de borland c++ v3.1 *;
//* émail : Polo12@ajeeb.com *;
//* Développé le : 29/11/2002 *;
//* Dernière MAJ : 12/02/2003 *;
//*--------------------------------------------------------------------*;
//* Usage : Il peut communiquer avec plusieurs langages de *;
//* programmation java ou autre à l'intermédiaire du fichier générer*;
//* Il est utile si nous voulons obliger l'utilisateur de notre *;
//* programme à utiliser un lecteur précis(lecteur CD par exemple *;
//* sorte de protection très répandue.. *;
//* ... Faite bon usage *;
//**********************************************************************;
#include <stdio.h>
#include <windows.h>
#include <string.h>
#include <fstream.h>
void main(){
//compteur
int iDrive;
//pointeur
WORD wReturn;
//elle contiendrait le type du lecteur
char szMsg[80];
//création du fichier
ofstream f("c:\\test_drive.txt");
//boucle et compteur de 0 à 25 (alphabet)
for (iDrive = 0, wReturn = 0;
(iDrive < 26) && (wReturn != 1); iDrive++) {
//il va nous informer de l'état du lecteur selon son numéro
wReturn = GetDriveType(iDrive);
//cette fonction permet d'afficher les caractères commençant d'a vers z les noms
// Des lecteurs possibles sous ces formes a: type,b: type...
sprintf(szMsg, "%c: ", iDrive + 'A');
switch (wReturn) {
case 0:
//absence du lecteur
strcat(szMsg, "undetermined");
break;
case DRIVE_REMOVABLE:
//lecteurs disquette
strcat(szMsg, "removable");
break;
case DRIVE_FIXED:
//lecteur fixe (disque dur)
strcat(szMsg, "fixed");
break;
case DRIVE_REMOTE:
//lecteur cd
strcat(szMsg, "remote (network)");
break;
}//switch
//*****************Filtrage des lecteurs et copie des infos puis affichage ********************
//si le lecteur existe alors traitement
if(wReturn !=0){
//if(wReturn==DRIVE_FIXED){ //si vous voulez seulement afficher que les lecteurs fixes
//Enregistrement dans un fichier ("c:\test_drive.txt")
f<<szMsg<<"\n";
//affichage du résultat
cout<<szMsg<<"\n";
}//if
}//for
//fermeture du fichier
f.close();
}//main