Lister les lecteurs

lolo87 - 19 janv. 2014 à 17:56
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 - 29 janv. 2014 à 20:36
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

BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 20
Modifié par BruNews le 20/01/2014 à 18:24
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...
0
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
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 23
24 janv. 2014 à 13:05
Salut,

oui, la "dotnetterie" propose ceci :

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


bye...
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 23
29 janv. 2014 à 20:36
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...
0