Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Listare penne USB e floppy
Forum - C# / VB.NET - Listare penne USB e floppy

Avatar
Furion (Normal User)
Rookie


Messaggi: 51
Iscritto: 31/01/2008

Segnala al moderatore
Postato alle 10:45
Domenica, 27/07/2008
Ciao ragazzi sono tornato a rompere le scatole XD
Avrei la necessità di scrivere un programma in VB2005 che riesca a darmi una lista completa di tutte e sole le pennette usb e dei floppy che sono correntemente connesse/inseriti nel PC per poi estrarne i codici seriali univoci imposti dalla fabbrica e la lettera di sistema (A:, G:, ecc..). Cercando su internet e sul MSDN ho trovato questi due spezzoni di codice:

Codice sorgente - presumibilmente VB.NET

  1. Dim oWMI As Object
  2. Dim USB_collection As Object
  3. Dim USB_obj As Object        
  4. oWMI = GetObject("winmgmts:")        
  5. USB_collection = oWMI.ExecQuery("Select * from Win32_USBHub")
  6. For Each USB_obj In USB_collection
  7.    MsgBox(USB_obj.Name & " --- " & USB_obj.DeviceID)
  8. Next



Codice sorgente - presumibilmente VB.NET

  1. Dim drives() As DriveInfo = DriveInfo.GetDrives
  2. Dim drive As DriveInfo
  3. For Each drive In drives
  4.    MsgBox(drive.Name)
  5.    MsgBox(drive.DriveType.ToString)
  6. Next



Solo che nessuno dei due soddisfa in pieno i miei propositi. Potete aiutarmi? GRAZIE IN ANTICIPO

Ultima modifica effettuata da Furion il 27/07/2008 alle 10:47
PM Quote
Avatar
Furion (Normal User)
Rookie


Messaggi: 51
Iscritto: 31/01/2008

Segnala al moderatore
Postato alle 20:19
Domenica, 27/07/2008
Raga scusate il doppio post, ma avrei una certa urgenza. Non c'è nessuno che può aiutarmi? GRAZIE ANCORA A TUTTI

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 11:43
Lunedì, 28/07/2008
http://www.dotnetframework.de/scripting/WMIReferenz.asp?C_ ...
Qui ci sono listate un po' di proprietà che puoi richiamare dall'oggetto WMI.

Per il codice .Net, DriveType restituisce "Removable" se l'unità è removibile (ossia USB e floppy), mentre la proprietà IsReady determina se l'unità è pronta per l'utilizzo, ossia se è connessa a un dispositivo qualsiasi (sia esso floppy o presa usb). Questo codice restituisce tutte le unità rimovibili attive presenti:
Codice sorgente - presumibilmente VB.NET

  1. Dim drives() As IO.DriveInfo = IO.DriveInfo.GetDrives
  2. Dim drive As IO.DriveInfo
  3.  
  4. For Each drive In drives
  5.   If drive.IsReady AndAlso drive.DriveType.ToString = "Removable" Then
  6.     Console.WriteLine(drive.Name)
  7.     Try
  8.       Console.WriteLine(drive.VolumeLabel)
  9.     Catch ex As Exception
  10.  
  11.     End Try
  12.     Console.WriteLine()
  13.   End If
  14. Next


Però NON fa distinzione nel tipo. L'unica cosa che ti potrebbe permettere di farla è controllare la proprietà VolumeLabel: nel caso dei floppy potrebbe essere "Floppy da 3.5 pollici" (io non lo so perchè non avendo una porta per i floppy non ho potuto provare).

PM Quote
Avatar
Furion (Normal User)
Rookie


Messaggi: 51
Iscritto: 31/01/2008

Segnala al moderatore
Postato alle 12:18
Lunedì, 28/07/2008
Ok grazie, lo provo subito ^_^

EDIT: no, con la VolumeLabel non funge: ho inserito sia un floppy che una penna USB. La prima parte del codice le identifica correttamente, ma poi, per entrambe, mi torna la stringa vuota come VolumeLabel...

Ultima modifica effettuata da Furion il 28/07/2008 alle 12:21
PM Quote