Lister les lecteurs

Signaler
-
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
-
Bonjour, Je développe une application avec windows FORM et je n'arrive pas à lister tout les lecteurs présent sur mon pc même après plusieurs heures de recherche. Quelqu'un aurait une solution ? merci de votre aide.

4 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
Il n'y a pas un truc tout dispo dans la DotNetterie ?

Exemple en vrai code, tu verras si tu peux adapter:
DWORD FillCmbCD()
{
  DWORD dwdrvs, n;
  char szdrv[4];
  dwdrvs = GetLogicalDrives();
  n = 0;
  if(dwdrvs == 0) goto cdEXIT;
  *((DWORD*) szdrv) = 0x5C3A41; // "A:\"
drvNEXT:
  if((dwdrvs & 1) == 0) goto drvBAD;
  if(GetDriveType(szdrv) != DRIVE_CDROM) goto drvBAD;
  SendMessage(hcbDRV, CB_ADDSTRING, 0, (LPARAM) szdrv);
  n++;
drvBAD:
  szdrv[0]++;
  if(dwdrvs >>= 1) goto drvNEXT;
  if(n) SendMessage(hcbDRV, CB_SETCURSEL, 0, 0);
cdEXIT:
  return n;
}


ciao...
Merci de cette réponse mais je suis étudiant en BTS informatique et je n'ai pas vraiment compris votre réponse. Pourriez vous m'apporter des précisions ? merci d'avance
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
20
Salut,

oui, la "dotnetterie" propose ceci :

 array<String^>^drives = Environment::GetLogicalDrives();
   Console::WriteLine( "GetLogicalDrives: {0}", String::Join( ", ", drives ) );


bye...
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
20
Salut,

petite info sur le code de Brunews,

La fonction telle quelle ne renvoi que les disques amovibles et pas C:\ , D:\ ect...

Pour avoir les disques, mettre == sur la ligne suivante à la place de != :
if(GetDriveType(szdrv) == DRIVE_CDROM)
goto drvBAD;

Pour avoir TOUS les lecteurs, commenter cette même ligne

//if(GetDriveType(szdrv)== DRIVE_CDROM)
//goto drvBAD;

bye...