IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Lettre d'un volume d'apres les informations du périphérique usb


Sujet :

Windows

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Lettre d'un volume d'apres les informations du périphérique usb
    Bonjour, je viens a vous apres de nombreuses recherches infructueuses. Dans un de mes logiciels, je récupere les périphériques USB connectés et les infos les concernant, a savoir leur vendorID, leur serial number et leur productID, le tout dans cette fameuse chaine:

    "\\?\USB#Vid_1970&Pid_0000#52571401120319271106#{a5dcbf10-6530-11d2-901f-00c04fb951ed}"

    si je la passe a CreateFile, j'ai un handle valide, mais je ne sais pas un Handle sur quoi ^^

    mon but est de récupérer la lettre du lecteur associé a cette chaine de quelque facon que ce soit, du moment que cela est codable en C/C++ natif. toute aide ou idée serait la bienvenue. Merci d'avance pour votre aide !

  2. #2
    Membre averti Avatar de pascal.barbier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2007
    Messages : 362
    Points : 442
    Points
    442
    Par défaut
    Le handle que tu obtiens est un handle sur le driver du périphérique USB en question

    A mon souvenir, il ne permettra pas de connaître la lettre de lecteur associé au disque du lecteur.

    On peut utiliser ce handle pour piloter le driver par des DevIoCtl ou ReadFile/WriteFile selon le protocole interne au driver.

    Pour trouver la lettre de lecteur USB je n'ai pas de réponse mais j'aurais plutôt cherché à énumérer les lecteurs pour trouver celui qui est USB ???
    www.iristechnologies.eu
    Centre de formation à Paris et Toulouse

  3. #3
    Membre confirmé
    Homme Profil pro
    .
    Inscrit en
    Juin 2002
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : .
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2002
    Messages : 239
    Points : 567
    Points
    567
    Par défaut
    Bonsoir.

    La fonction GetLogicalDrives donne la liste des disques disponibles.

    La fonction GetLogicalDrivesStrings donne le nom des racines de ces disques
    ( par exemple la chaîne ''C:\").

    Enfin la fonction GetDriveType donne la nature du disque ( fixe, amovible, distant, etc ... )

    Voir la description de ces fonctions sur MSN pour plus de détails.

  4. #4
    Membre averti Avatar de pascal.barbier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2007
    Messages : 362
    Points : 442
    Points
    442
    Par défaut
    Voici un exemple de mise en oeuvre :
    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
    41
    42
    43
    44
    45
    #include <windows.h>
    
    #define BUFSIZE 512
    
    int main(int argc, char* argv[])
    {
    	char szTemp[BUFSIZE];
    	szTemp[0] = '\0';
    	
    	GetLogicalDriveStrings(BUFSIZE, szTemp);
    
    	char* pos = szTemp;
    
    	while( *pos != 0 )
    	{
    		switch( GetDriveType(pos) )
    		{
    		case DRIVE_UNKNOWN:
    			printf("Lecteur %s : inconnu\n", pos);
    			break;
    		case DRIVE_NO_ROOT_DIR:
    			printf("Lecteur %s : invalide\n", pos);
    			break;
    		case DRIVE_REMOVABLE:
    			printf("Lecteur %s : amovible (floppy, USB)\n", pos);
    			break;
    		case DRIVE_FIXED:
    			printf("Lecteur %s : fixe\n", pos);
    			break;
    		case DRIVE_REMOTE:
    			printf("Lecteur %s : réseau\n", pos);
    			break;
    		case DRIVE_CDROM:
    			printf("Lecteur %s : CD-ROM\n", pos);
    			break;
    		case DRIVE_RAMDISK:
    			printf("Lecteur %s : RAM-DISK\n", pos);
    			break;
    		}
    		pos = pos + strlen(pos) + 1;
    	}
    
    	return 0;
    }
    www.iristechnologies.eu
    Centre de formation à Paris et Toulouse

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    merci de vos réponses.

    j'avais déja trouvé la fonction pour énumérer les disques et leur type, mais cela ne me permet pas de rejoindre le vendor ID, Serial Number et product ID a la lettre du lecteur, et c'est surtout ca mon objectif principal. Car si je me base sur le fait que les infos que j'ai retrouvé sont celles du périphérique USB connecté, des que j'ai plus d'un périphérique usb plugé sur la machine ca ne marche plus

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/09/2009, 13h59
  2. Informations sur périphérique USB
    Par neodelphi2007 dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 26/08/2009, 06h47
  3. [MySQL] Retenir les informations dans un menu déroulant après un rafraichissement
    Par cheik_koita dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 30/03/2009, 16h27
  4. Réponses: 10
    Dernier message: 13/04/2008, 16h27
  5. [AJAX] Liste déroulante pour afficher les informations en ajax div ?
    Par rob2-9 dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 17/11/2006, 09h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo