Bonjour,

Je cherche à créer une fonction C++ permettant de lister les clé USB connectées à l'ordinateur.
Je suis sous Visual studio 2005, et j'utilise un projet MFC.

J'ai tapé le code suivant, mais aucune clé n'est détectée quand je lance le programme.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
void listeLecteursAmovibles(void)
{
	DWORD lecteurs;
 
 
	DWORD modif_bit[] = {
	1, 2, 4, 8, 0x10, 0x20, 0x40, 0x80, 0x100, 0x200,
	0x400, 0x800, 0x1000, 0x2000, 0x4000, 0x8000, 0x10000,
	0x20000, 0x40000, 0x80000, 0x100000, 0x200000, 0x400000,
	0x800000, 0x1000000, 0x2000000
	};
 
	char *liste_lecteur[] = {
	"A:\\", "B:\\", "C:\\", "D:\\", "E:\\", "F:\\", "G:\\", "H:\\", "I:\\",
	"J:\\", "K:\\", "L:\\", "M:\\", "N:\\", "O:\\", "P:\\", "Q:\\",
	"R:\\", "S:\\", "T:\\", "U:\\", "V:\\", "W:\\", "Y:\\", "Z:\\"
	};
 
	strcpy_s(lecteursAmovibles, "");
 
	lecteurs = GetLogicalDrives();
 
 
	if(lecteurs == 0) {
	MessageBox(NULL, _T("Impossible de lire les lecteurs presents sur votre ordinateur"),
	_T("Erreur :-("), MB_OK|MB_ICONERROR);
	}
 
	for(int i = 0; i < 25; i++)
	{
		if(lecteurs & modif_bit[i])
		{
			UINT typeLecteur = GetDriveType((LPCWSTR)liste_lecteur[i]);
			if(typeLecteur == 2)
			strcat_s(lecteursAmovibles, liste_lecteur[i]);
		}
	}
 
 
}
Tous les lecteurs présent sont de type 1 (inconnu), mais aucun de type 2 (disque amovible).

Merci d'avance pour votre aide.

PS : Je cherche aussi à renvoyer les données de lecteursAmovibles par cette fonction, mais je n'y arrive pas. Il s'agit d'un char[255] que j'ai déclaré en global pour le moment, mais que je voudrais renvoyer à la fin de la fonction, pour faire plus propre. Si quelqu'un a une solution, ...