Oppure

Loading
15/01/10 11:52
swet
Salve a tutti, è tutta la mattina che cerco ma purtroppo non ho trovato molto, avrei bisogno di ricavare il serial number delle pendrive usb , quello univoco, sto provando con :
Dim search3 As New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia")
Dim info As ManagementObject
For Each info In search3.Get()
If info("SerialNumber") Is Nothing Then
txt = "Non presente"
Else
txt = info("SerialNumber").ToString()
End If
finale="Hard Disk ID: " & txt
Next

Però mi trova solo il seriale dell' harddisk.

Usando il programma di WMI CODE CREATOR , ho trovato che dovrei cambiare il codice così:
SELECT * FROM Win32_DiskDrive",,48

Solo che quel 48 non gli va proprio giù, se lo ometto mi evidenzia
Salve a tutti, è tutta la mattina che cerco ma purtroppo non ho trovato molto, avrei bisogno di ricavare il serial number delle pendrive usb , quello univoco, sto provando con :
txt = info("SerialNumber").ToString() 

E mi dice:" NON TROVATO".

Potete aiutarmi?

Grazie
Ultima modifica effettuata da swet 15/01/10 13:24
aaa
15/01/10 13:16
nessuno
L'informazione sul seriale per le due classi è la medesima.

Molto probabilmente quel device USB *non* espone il seriale.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
15/01/10 13:50
swet
Ciao, ho provato con due pendrive e il risultato è il medesimo. Documentandomi ho trovato questo codice in C# :
	

//import the System.Management namespace at the top in your "using" statement. Then in a method, or on a button click:
 
ManagementObjectSearch theSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive WHERE InterfaceType='USB'");
foreach (ManagementObject currentObject in theSearcher.Get())
{
   ManagementObject theSerialNumberObjectQuery = new ManagementObject("Win32_PhysicalMedia.Tag='" + currentObject["DeviceID"] + "'");
   MessageBox.Show(theSerialNumberObjectQuery["SerialNumber"].ToString());
}


Che in Vb.Net dovrebbe essere così:
'import the System.Management namespace at the top in your "using" statement. Then in a method, or on a button click:
Dim theSearcher As ManagementObjectSearch = New ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive WHERE InterfaceType='USB'")
For Each currentObject As ManagementObject In theSearcher.[Get]()
    Dim theSerialNumberObjectQuery As New ManagementObject("Win32_PhysicalMedia.Tag='" & currentObject("DeviceID") & "'")
    MessageBox.Show(theSerialNumberObjectQuery("SerialNumber").ToString())
Next


Ma non va, mi segnala theSerialNumberObjectQuery :
Risoluzione dell'overload non riuscita perché nessun 'New' accessibile può essere chiamato senza una conversione verso un tipo di dati più piccolo: 
    'Public Sub New(path As String)': Il parametro 'path' corrispondente all'argomento viene convertito da 'Object' a 'String', più piccolo.
    'Public Sub New(path As System.Management.ManagementPath)': Il parametro 'path' corrispondente all'argomento viene convertito da 'Object' a 'System.Management.ManagementPath', più piccolo.


Cosa manca?
aaa
15/01/10 14:02
nessuno
Forse non mi sono spiegato prima ...

Tu hai *mai* visto il seriale di quei device (con altri software) ?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
15/01/10 14:09
swet
Ciao, "purtroppo" hai ragione tu, ho provato anche altri programmi ma il seriale non viene visto in nessuna delle due pendrive. C'è qualcos' altro di univoco che si può estrarre dalla pendrive?
aaa
15/01/10 14:14
nessuno
Postato originariamente da swet:

Ciao, "purtroppo" hai ragione tu, ho provato anche altri programmi ma il seriale non viene visto in nessuna delle due pendrive. C'è qualcos' altro di univoco che si può estrarre dalla pendrive?


No ... e comunque non da *tutte* le pendrive ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.