Recuperare seriale HD SATA (neanche SCRIPTOMATIC funziona)

martedì 24 novembre 2009 - 10.01

Barabas Profilo | Junior Member

Salve,
avevo realizzato un metodo VB.net per leggere il seriale dell'hard disk allo scopo di proteggere il sw.
usavo la libreria System.Management e funzionava bene su diversi PC.

ma ora provando questa funzione su un hd seagate modello STM3250318AS non funziona.
La scheda madre è una P5KPL-AM SE

Addirittura non funziona neanche SCRIPTOMATIC 2.0, non solo non recupera il seriale dell'HD, ma neanche quello della RAM e non riesce a recuperare nessuna informazione relativa al sistema.

Mentre lo strumento SW per della Seagate "SeaTools per Windows" riesce a leggere il seriale dell'HD.
Il problema è che devo farlo leggere anche alla mia applicazione VB.net.

Ho letto in rete che alcuni HD SATA non restituiscono il seriale, ma perchè anche la RAM non restituisce il seriale?
Può dipendere da qualche impostazione BIOS?

C'è qualcuno che ha affrontato lo stesso tipo di problema con successo e può darmi una mano?

Grazie in anticipo

Barabas

PS dopo aver fatto diversi tentativi ho constatato che sui pc dell riesco a recuperare qualsiasi info del sistema mentre sui pc con scheda madre ASUS quasi niente, quindi ne deduco che il problema non sia causato dall'hard disk SATA ma che sia collegato alla scheda madre asus e al suo BIOS o al chipset.
Se qualcuno riesce a recuperare le info di sistema da un PC con scheda madre ASUS mi faccia sapere, io ho provato due modelli P5KPL-AM, SE e un'altro che ora non ricordo.

lungomare Profilo | Newbie

Anche io ho un'appl vbnet che legge il seriale dell'hard-disk.
Non conosco le caratteristiche delle macchine su cui viene installata però sono alla 150esima installazione e il seriale lo leggo su tutte.
Io ho utilizzato la funzione GetVolumeInformation del Kernel32.dll in un progetto win-form sviluppato in vb2005.
Non giurerei che sia il procedimento corretto ma, se ti potesse servire, posso darti tutti i riferimenti

basicdany Profilo | Expert

Io hofatto cosi e funziona benissimo:

Private Function LeggiDisk() As Char()
Dim Serial As String

Try
Dim disk As Management.ManagementObject = New Management.ManagementObject("win32_logicaldisk.deviceid='C:'")
disk.Get()
Serial = disk("VolumeSerialNumber").ToString
Serial = Serial.PadLeft(8, "0")
Return Serial

Catch ex As Exception
Serial = ""
Return Serial.PadLeft(8, "0")
End Try
End Function

ciao

Barabas Profilo | Junior Member

il metodo che usa Management.ManagementObject è quello che ho usato e non va sul PC con scheda Asus, ma funziona sui PC DELL.

Questo altro metodo GetVolumeInformation del Kernel32.dll è diverso da quello che avevo usato. Appena ho un po' di tempo provo e vi faccio sapere.

Grazie mille

Barabas

basicdany Profilo | Expert

ciao, ricordati di caricare il riferimento a Management.
ciao

Barabas Profilo | Junior Member

il riferimento a Management è caricato.
il problema deve essere proprio della scheda madre Asus o del Bios, perchè come dico anche nel titolo del post, neanche scriptomatic funziona.
nè il mio software nè scriptomatic vanno in errore, ma semplicemente come seriale dell'HD e della RAM restituiscono stringa vuota, cioè non riescono a leggerli.
Barabas

basicdany Profilo | Expert

Prova su un altro pc per vedere se il problema e il progetto o il pc

ciao

Barabas Profilo | Junior Member

Si si ho già provato su altri PC.
Come ho già detto prima sui PC DELL funziona correttamente, mentre sui PC assemblati con scheda madre ASUS (modello che ho scritto prima) fa questo problema.
Barabas
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5