Frage

Ich bin mir bewusst, dass ich die CPU-Kennung und die Datenträger-Seriennummer für ein physikalisches Laufwerk durch Abfrage WMI greifen kann, aber WMI dauert in der Regel seine süße Zeit. Was andere zügigere Optionen, falls vorhanden, zur Verfügung stehen diese Informationen abzurufen? Gibt es Win32-APIs, die dies erreichen würde?

Edit: Lassen Sie mich klarstellen. Durch die CPU-Kennung, ich beziehe mich auf den gleichen Wert ein Eigenschaften durch Abfragen die folgenden WMI-Instanz erhält:

  • Win32_Processor :: processorID
  • Win32_LogicalDisk :: VolumeSerialNumber
War es hilfreich?

Lösung

Denken Sie daran, dass ID der CPU nicht immer verfügbar ist.

Durch die Art und Weise, was wollen Sie erreichen? Wenn Sie einen eindeutigen Schlüssel für eine Computer-Instanz erstellt werden soll, überprüfen Sie die Generieren von Eindeutiger Schlüssel (Finger Print) für einen Computer zur Lizenzierung Beitrags von Sowkot Osman bei Codeproject; es kann Ihnen einige Hinweise geben (auch Kommentare lesen).

Andere Tipps

Sie können den Windows-Registry für die Antrieb Informationen abfragen, nicht sicher, obwohl über die CPU. Es scheint, dass Ihre Frage in diesem SO q gerichtet / a (zeigt eine Reihe von Methoden, um diese Informationen zu erhalten, sondern auch für Geschwindigkeit, vielleicht ist es aus der Registrierung bekommen ist die beste Wahl):

Wie physischen Datenträger zur Liste?

WMI nimmt tatsächlich einen guten Teil seiner Daten aus der Registrierung. Das System speichert eine Fülle von Informationen dort über das System, und es ist offensichtlich sehr schnell reagieren zu können.

Wenn Sie schauen, um das Motherboard, CPU und / oder HDD aus lizenzrechtlichen Gründen zu sperren, überprüfen Sie folgende Werte aus:
HKLM \ HARDWARE \ BESCHREIBUNG \ System \ BIOS \ BaseBoardManufacturer
HKLM \ HARDWARE \ BESCHREIBUNG \ System \ BIOS \ BaseBoardProduct
HKLM \ HARDWARE \ BESCHREIBUNG \ System \ Central \ 0 \ Identifier
HKLM \ HARDWARE \ BESCHREIBUNG \ System \ Central \ 0 \ Processor
HKLM \ SOFTWARE \ Microsoft \ Windows NT \ Currentversion \ DigitalProductId
HKLM \ SOFTWARE \ Microsoft \ Windows NT \ Currentversion \ ProductId
HKLM \ SOFTWARE \ Microsoft \ Windows NT \ Currentversion \ BuildLabEx
HKLM \ HARDWARE \ BESCHREIBUNG \ System \ Multifunctionadapter \ 0 \ Diskcontroller \ 0 \ DiskPeripheral \ 0
(möglicherweise spezifisch für Platten mit RAID im Einsatz)

Wenn Sie die Festplatte Serien ohne WMI erhalten möchten, geben Sie einen DeviceIoControl Aufruf an die physikalischen Antriebsvorrichtung. Beispielcode in VB.NET: http://www.dreamincode.net/code/snippet429.htm

Für CPUID, versuchen Sie dies: http: // devpinoy .org / blogs / cvega / Archiv / 2006/04/07 / 2658.aspx

Für Volume-Seriennummer, versuchen Sie dies: http://www.eggheadcafe.com/articles /20021019.asp

Google ist dein Freund; -)

Ich mag GetSystemInfo aber das doesn ‚t physikalische Laufwerke abdecken ..

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top