Identifiant unique USB et référence au lecteur?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Identifiant unique USB et référence au lecteur?

Message par GallyHC »

Bonjour tout le monde,

Je recherche encore à faire un code pour trouver le l'identifiant unique des lecteurs USB (la c'est bon). Par contre il faudrait que je trouve une solution pour connaitre la lettre ou il est associer.
Genre Mxxxxxxxxxxxxxx&0 > a : ect…

Le code pour avoir l'identifiant unique:

Code : Tout sélectionner

; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************

; +--------------------------------------------------------------------------+
; |                                                                          |
; +--------------------------------------------------------------------------+

EnableExplicit

; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************

; +--------------------------------------------------------------------------+
; |                                                                          |
; +--------------------------------------------------------------------------+

Procedure.s setCutLigne(value.s)
; ROUTINE DE DECOUPAGE DES REPERTOIRES.
  Define i.l

  For i=Len(value)-1 To 0 Step -1
    If Mid(value, i, 1) = "\"
      Break
    EndIf
  Next i
  If i>0
    ProcedureReturn Mid(value, i+1, Len(value)-(i))
  Else
    ProcedureReturn value
  EndIf

EndProcedure

; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************

; +--------------------------------------------------------------------------+
; |                                                                          |
; +--------------------------------------------------------------------------+

Structure SP_DEVINFO_DATA
  cbSize.l
  ClassGuid.GUID
  DevInst.l
  Reserved.l
EndStructure
Define value.l
Define idlib.l
Define devic.l
Define devid.l
Define usbid.s
Define alias.s
Define hDeviceInfoSet.l
Define DeviceInfoData.SP_DEVINFO_DATA

hDeviceInfoSet        = SetupDiGetClassDevs_(0, 0, 0, #DIGCF_PRESENT|#DIGCF_ALLCLASSES)
DeviceInfoData\cbSize = SizeOf(DeviceInfoData)
idlib = OpenLibrary(#PB_Any, "cfgmgr32.dll")
devic = GetFunction(idlib,   "CM_Get_Device_IDA")

While SetupDiEnumDeviceInfo_(hDeviceInfoSet, value, @DeviceInfoData)
  usbid = Space(255)
  CallFunctionFast(devic, DeviceInfoData\DevInst, @usbid, Len(usbid), 0)  
  If Left(usbid, 7) = "USBSTOR"
    Debug setCutLigne(usbid)
  EndIf
  value+1
Wend
CloseLibrary(idlib)
SetupDiDestroyDeviceInfoList_(hDeviceInfoSet)
La, je sèche complètement…

Merci d'avance
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Re: Identifiant unique USB et référence au lecteur?

Message par Patrick88 »

vu sur le forum anglais :

USB HID Library

This library allows to gain access to USB HID device, from programs, written in PureBasic.

Cette bibliothèque permet d'accéder à l'USB HID, depuis des programmes écrits en PureBasic.

http://www.purebasic.fr/english/viewtop ... 14&t=41729
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Identifiant unique USB et référence au lecteur?

Message par GallyHC »

Merci Patrick88, le problème est que la plus par des fonctions de cette Dll je l'obtien sans problème via l'api "SetupDiGetDeviceRegistryProperty", mais pas la lettre, ni le nom du Device.

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Identifiant unique USB et référence au lecteur?

Message par falsam »

Au cas ou ça t'aiderait

Code : Tout sélectionner

Procedure DetectUSBKey() 
  For n=0 To 26 
    If RealDriveType_(n,0)=  #DRIVE_REMOVABLE
      Debug Chr(n+65)+": Drive is a Removable Drive" 
    EndIf 
  Next 
EndProcedure 
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Identifiant unique USB et référence au lecteur?

Message par falsam »

A prioiris DEV_BROADCAST_VOLUME est déjà déclaré en tant que structure dans le compilateur mais je n'ai pas réussi à le mettre en oeuvre

Cette structure donne accès à

dbcv_devicetype (surement ce que tu cherches)
dbcv_flags
dbcv_reserved
dbcv_size
dbcv_unitmask (surement ce que tu cherches)
PB_Alignment
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Répondre