OBTENIR LA LISTE DES PÉPRIPHÉRIQUES ÉJECTABLES (LES CLÉS USB, DISQUE DURS USB...

cs_clementpat Messages postés 406 Date d'inscription lundi 2 décembre 2002 Statut Membre Dernière intervention 25 janvier 2014 - 3 janv. 2005 à 18:22
yan35 Messages postés 185 Date d'inscription dimanche 29 juin 2003 Statut Membre Dernière intervention 20 juin 2013 - 11 janv. 2009 à 19:54
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/28573-obtenir-la-liste-des-pepripheriques-ejectables-les-cles-usb-disque-durs-usb-et-les-ejecter

yan35 Messages postés 185 Date d'inscription dimanche 29 juin 2003 Statut Membre Dernière intervention 20 juin 2013
11 janv. 2009 à 19:54
Bonsoir ShareVB,

Je te remercie de tes infos. Cependant depuis mon dernier message, j'ai pas mal décortiqué ton code et lu de la doc sur les API SetupDi et du coup j'en ai déduit que je ne pouvais pas distinguer les disque externes par ces API. En effet ils sont attachés à la classe Volume, celle dont tu me donnes le classGUID pour utilisation avec SetupDiGetClassDevs, ce qui permet d'aller + vite dans leur identification mais ne permet pas de savoir qu'ils sont USB, voire même FW. D'ailleurs dans ton code tu détectes bien les clés USB mais pas les disques externes. J'abandonne donc une partie de cette piste pour les détecter et m'oriente vers l'API DeviceIoControl pour détecter le type de bus du disque. (mais l'utilisateur doit être des droits sur le disque !).
Quoiqu'il en soit, Merci pour ton code et tes infos.
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
11 janv. 2009 à 11:34
salut,

L'api SetupDiGetClassDevs permet de récupérer les devices selon une catégorie (premier paramètre) soit d'installation (les catégories du Device Manager : http://msdn.microsoft.com/en-us/library/ms791134.aspx) soit d'interface (des catégories plus générales : http://msdn.microsoft.com/en-us/library/bb663138.aspx).

Si tu veux récupérer tous les disques, il faut que tu appelles cette api, de la façon suivante :
SetupDiGetClassDevs({71a27cdd-812a-11d0-bec7-08002be2092f}, NULL, NULL, DIGCF_PRESENT)

ShareVB
yan35 Messages postés 185 Date d'inscription dimanche 29 juin 2003 Statut Membre Dernière intervention 20 juin 2013
6 janv. 2009 à 18:34
10/10 Merci
yan35 Messages postés 185 Date d'inscription dimanche 29 juin 2003 Statut Membre Dernière intervention 20 juin 2013
6 janv. 2009 à 18:32
Bonjour,
Je viens de découvrir ce code en cherchant comment identifier des disques externes USB afin d'orienter un traitement différent de l'API WriteFile pour ce type de disque dans un code. C'est super, j'y trouve ce qu'il me faut et je vais en prendre un bout et l'adapter à une classe que j'utilise en information sur disque et fichiers. Merci pour ce gros travail d'information.
Y aurait-il une ou d'autres constantes comme DIGCF_ALLCLASSES = &H4 pour cibler l'extraction et limiter le parcours de l'énumération obtenue ?
Merci
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
29 août 2007 à 23:03
salut,

"mot de passe" de quoi ? tu peux détecter l'arrivée d'un nouveau périphérique en sous classant ta fenêtre principale et en captant le message WM_DEVICECHANGE et son wparam dbt_devicearrival, en promptant le mot de passe puis en déconnectant si mauvais mot de passe...mais bon, je suis pas sûr que ca marche à tous les coups...

ShareVB
emmabille Messages postés 1 Date d'inscription jeudi 16 août 2007 Statut Membre Dernière intervention 24 août 2007
24 août 2007 à 03:41
Je cherche à filtrer les accès de memory sticks sur un pc (partagé), Quelqu'un aurait-il une astuce du genre «si mot de passe incorrect, alors déconnexion de la clé ».
Merci pour ce code, je suis impressionné.
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
1 janv. 2007 à 20:29
à priori, fonctionne sous Windows Vista Business...principalement en Administrateur...

ShareVB
JGA_BF Messages postés 1 Date d'inscription mercredi 28 juin 2006 Statut Membre Dernière intervention 28 juin 2006
28 juin 2006 à 16:54
Bravo, belle réalisation.
42wawa42 Messages postés 143 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 6 septembre 2011
11 juin 2006 à 19:16
MARCHE tres bien avec windows mille.
Tres bon program.
Merci.
Dane.
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
26 févr. 2006 à 22:48
salut,

la prise en charge de la lettre de lecteur vient d'être ajoutée.

ShareVB
cs_riririri Messages postés 1 Date d'inscription mardi 24 janvier 2006 Statut Membre Dernière intervention 24 janvier 2006
24 janv. 2006 à 15:30
Super... really. Mais j'ai pas vu si la lettre du lecteur était disponible qqpart, alors j'éjecte sans trop savoir quoi. A part cela, encore thanks
cs_Sator2 Messages postés 137 Date d'inscription samedi 11 septembre 2004 Statut Membre Dernière intervention 10 septembre 2006
3 janv. 2005 à 23:51
Fonctionne sous XP pro...
Merci
@+Sator 2
cs_clementpat Messages postés 406 Date d'inscription lundi 2 décembre 2002 Statut Membre Dernière intervention 25 janvier 2014
3 janv. 2005 à 18:22
marche pas sous windows mille .
Rejoignez-nous