29/12/09 14:40
swet
Salve a tutti, sto cercando di risalire al seriale del mio harddisk esterno tramite questa API che uso così:
Ma mi restituisce sempre 0 eppure la lettera del drive è esatta.
Potete aiutarmi?
Grazie
EDIT: Ho risolto così:
Ma perché se l' unità la metto in quel modo funziona e se invece faccio così
non va più?Mi dice parametro non valido.
Private Declare Function GetVolumeSerialNumber Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As Long, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, ByVal lpMaximumComponentLength As Long, ByVal lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As Long, ByVal nFileSystemNameSize As Long) As Long Private Function VolumeSerial(DriveLetter) As Long Dim Serial As Long Call GetVolumeSerialNumber(UCase(DriveLetter) & ":\", 0&, 0&, Serial, 0&, 0&, 0&, 0&) VolumeSerial = Serial End Function MsgBox("Il seriale è:"& VolumeSerial("E")
Ma mi restituisce sempre 0 eppure la lettera del drive è esatta.
Potete aiutarmi?
Grazie
EDIT: Ho risolto così:
Dim disk As New ManagementObject("Win32_LogicalDisk.DeviceID=""E:""") Dim diskProperty As PropertyData = disk.Properties("VolumeSerialNumber") seriale = diskProperty.Value.ToString()
Ma perché se l' unità la metto in quel modo funziona e se invece faccio così
Dim disk As New ManagementObject("Win32_LogicalDisk.DeviceID="&Mid(s, 1, 2)&"")
non va più?Mi dice parametro non valido.
Ultima modifica effettuata da swet 29/12/09 16:46
aaa