Oppure

Loading
19/05/09 13:35
magicolotto
ciao ragazzi come posso prelevare il numero seriale fisico dell'hard disk
dovrebbe essere cosi :

GetVolumeInformation "C:\", Buf$, 255, Serial, Length, Flags, Name$, 255
    HardSerial = Serial


non sono sicuro se è quello fisico
aaa
19/05/09 13:45
magicolotto
dimenticavo quel codice mi ricava un serial del tipo :

F1MPP5BEQ0AQRC44
aaa
19/05/09 18:19
theprogrammer
E cosa e' GetVolumeInformation ?

Comunque, sappi che

1) non tutti gli HD restituiscono il Serial Number (quindi non e' un metodo affidabile)

2) e' facilmente superabile (quindi non e' un metodo affidabile)

3) se cambi HD, il programma non funziona piu' (e il cliente si inc ... arrabbia ...)
aaa
19/05/09 19:16
magicolotto
se quel serial è abbinato alla criptazione del metodo MD5
risultera' acora non affidabile?

ma come si ottiene il serial fisico?
aaa
19/05/09 19:28
theprogrammer
Il problema non e' che sia affidabile o meno la criptazione ... e' il metodo del seriale dell'hard disk ...

aaa
19/05/09 19:42
magicolotto
si lo so

ma x ricavare quel serial fisico... dell'hardisk

serial che rimmarra sempre univoco, anche formattando..

come si trova?
aaa
19/05/09 22:09
Louis
Click sulla Frm:

Option Explicit
'Da VB6 puoi utilizzare Windows Managemente Instrumentation
'riferendoti alla libreria Microsoft WMI Scripting V1.2 Library
'Codice fornito/postato da Oregon:
'----------------------------------------------------------------
Private Sub Form_Click()
    
    'Controlla che sia presente Microsoft Windows Management Instrumentation:
    Call IsWMIInstalled
    
    Print "Seriale MB:" & vbCrLf & GetSerialInfo("BaseBoard")
    Print "Seriale BIOS: " & vbCrLf & GetSerialInfo("BIOS")
    Print "Seriale HD: " & vbCrLf & GetSerialInfo("PhysicalMedia")

End Sub
'----------------------------------------------------------------
Private Function GetSerialInfo(device As String) As String
    Dim objs As Object
    Dim obj As Object
    Dim WMI As Object
    Dim sAns As String
    
    Set WMI = GetObject("WinMgmts:")
    Set objs = WMI.InstancesOf("Win32_" & device)
    For Each obj In objs
      sAns = sAns & obj.SerialNumber & vbCrLf
    Next
    
    GetSerialInfo = Replace$(sAns, " ", "")
End Function
'----------------------------------------------------------------
' Restituisce True se è presente Microsoft Windows
' Management Instrumentation:
Function IsWMIInstalled() As Boolean

    Dim oTemp
On Local Error Resume Next
    
    Set oTemp = CreateObject("WbemScripting.sWbemLocator")
  
    IsWMIInstalled = (Err.Number <> 429)
  
    If Err.Number = 429 Then
      Err.Clear
      Else
      Set oTemp = Nothing
    End If

End Function


Ciao.
aaa
20/05/09 6:11
theprogrammer
Postato originariamente da Louis:
'Da VB6 puoi utilizzare Windows Managemente Instrumentation
'riferendoti alla libreria Microsoft WMI Scripting V1.2 Library
'Codice fornito/postato da Oregon:
'----------------------------------------------------------------


Il problema non e' il codice (che conosco bene ...) ma il fatto, ripeto, che il metodo non sia affidabile, soprattutto perche' NON tutti i dischi moderni restituiscono un seriale ...

Quindi, probabilmente tutto ti funzionerà ma arrvierà il momento in cui qualcuno ti dirà che qualcosa non va con il proprio disco ...

aaa