Frage : Die reale Festplatteseriennummer und in irgendeiner Bedingung für irgendein Festplattenlaufwerk zurückholen

Hallo,

I morgens using VB.NET in VS2005 und das Versuchen, den Hersteller wies zu erhalten (unchangeable) Seriennummer der Festplatte zu. Ich verwende diese Identifikation für Verteilungsschutz meiner software.

The Zahl sollte nicht die Festplatte VolumeSerialNumber des Faches sein, das durch die Software methods.

I morgens wieder zugewiesen werden kann arbeitend an diesem Problem während eines Zeitraums und einige Lösungen suchte, die, das erste man „using WMI“ durch den Wert „Win32_physicalmedia“ ist. Aber diese Methode bringt die Seriennummer als freier Raum für einige harddrives oder für irgendeine PC-Konfiguration zurück (ich könnte nicht finden, dass der tatsächliche Grund für ihn so tut, aber ich glücklich bin, ihn zu finden, auf meinem Entwicklung PC zu geschehen). Es gibt viele verschiedenen Beispiele von WMI, z.B. das folgende;
---
Dim TheSearcher als ManagementObjectSearcher = neues ManagementObjectSearcher („SELECT * VON Win32_PhysicalMedia“)

For jedes wmi_HD als ManagementObject TheSearcher.Get () im
MessageBox.Show (wmi_HD („SerialNumber"))
Next
---
It bringt eine leere Schnur in meinem PC zurück, aber Rückkehr der tatsächliche Hersteller wies Serie zu, als an meinen Kollegen PC's.

And die zweite Methode laufen gelassen, die ich fand; Using CreateFile von „kernel32.dll“ API. Sie ist etwas Ähnliches (nicht der volle Code hier gegeben, weil das ursprüngliche Beispiel lang ist, gerade für das Geben einer Idee über das Beispiel);
---
Private erklären Funktion CreateFile Bibliothek „kernel32“ alias „CreateFileA“ (ByVal lpFileName als Schnur, ByVal dwDesiredAccess als ganze Zahl, ByVal dwShareMode als ganze Zahl, ByVal lpSecurityAttributes als ganze Zahl, ByVal dwCreationDisposition als ganze Zahl, ByVal dwFlagsAndAttributes als ganze Zahl, ByVal hTemplateFile als ganze Zahl) als Integer

handle = CreateFile (“ \ \. \ PhysicalDrive " u. „0“, HDDID_GENERIC_READ + HDDID_GENERIC_WRITE, HDDID_FILE_SHARE_READ + HDDID_FILE_SHARE_WRITE, 0, HDDID_OPEN_EXISTING, 0, 0)

serialNumber = HDDID_SwapChars (sco.IDS.SerialNumber)
model = HDDID_SwapChars (sco.IDS.ModelNumber)
CloseHandle (Handgriff)
---
It arbeitet für alle Scheiben, die ich habe, aber die „CreateFile“ Funktion arbeitet nicht, wenn sie mit begrenzten Verwaltungsprivilegien angemeldet wird (d.h. angemeldet als begrenztes Benutzerkonto in Windows).

Is dort irgendeine dritte Methode, die in allen Bedingungen arbeitet? Oder ein über Beispielen working.
zu bilden Trick,

Antwort : Die reale Festplatteseriennummer und in irgendeiner Bedingung für irgendein Festplattenlaufwerk zurückholen

Vor wir hatten diese Art des Themas einiger Monat/Jahr, wo die Zusammenfassung war:
- Using mehr als 1 Abbildung mit einer N-1/N Gültigkeitserklärung kann Lizenzunterstützung stark verringern
- Abbildungen können Serien oder volles Modellnummer von kommen: NIC, HDD, MB

Ex von einer Gültigkeitserklärungrichtlinie: Das Netz-MAC address + HDD Modell + GPU Modell benutzen; die Lizenz validieren und die Lizenzempfehlungsabbildungen aktualisieren, wenn 2 von 3 gültig sind (das gleiche MAC address + ein HDD hat das gleiche vorbildliche + das gleiche GPU Modell)
==> also Ihr „schlechter“ Benutzer müssen das MAC address kennen und das genaue kaufen das gleiches HDD oder GPU des Lizenznehmers, die irgendeine reale Kompliziertheit und Preis der Piraterie hinzufügen
Weitere Lösungen  
 
programming4us programming4us