Domanda

Sono consapevole di poter acquisire l'identificatore della CPU e il numero seriale del volume per un'unità fisica eseguendo una query su WMI, ma WMI di solito impiega molto tempo. Quali altre opzioni più veloci sono disponibili per recuperare queste informazioni? Esistono API Win32 che lo farebbero?

Modifica: Consentimi di chiarire. Per identificatore della CPU, mi riferisco allo stesso valore che si ottiene interrogando le seguenti proprietà dell'istanza WMI:

  • Win32_Processor :: ProcessorId
  • Win32_LogicalDisk :: VolumeSerialNumber
È stato utile?

Soluzione

Tieni presente che l'ID della CPU non è sempre disponibile.

A proposito, cosa stai cercando di realizzare? Se desideri generare una chiave univoca per un'istanza di computer, controlla Generazione di Chiave unica (dito Stampa) per un computer a fini di licenza pubblicato da Sowkot Osman presso Codeproject; può darti alcuni suggerimenti (leggi anche i commenti).

Altri suggerimenti

Puoi interrogare il registro di Windows per le informazioni sull'unità, ma non sei sicuro della CPU. Sembra che la tua domanda sia indirizzata in questo SO q / a (dimostra una serie di metodi per ottenere queste informazioni, ma per velocità, forse ottenerle dal registro è la soluzione migliore):

Come elencare i dischi fisici?

WMI in realtà prende buona parte dei suoi dati dal registro. Il sistema memorizza molte informazioni sul sistema ed è ovviamente molto rapido rispondere.

Se stai cercando di bloccare la scheda madre, la CPU e / o l'HDD per motivi di licenza, controlla i seguenti valori:
HKLM \ HARDWARE \ DESCRIPTION \ System \ BIOS \ BaseBoardManufacturer
HKLM \ HARDWARE \ DESCRIPTION \ System \ BIOS \ BaseBoardProduct
HKLM \ HARDWARE \ DESCRIPTION \ System \ CentralProcessor \ 0 \ Identifier
HKLM \ HARDWARE \ DESCRIPTION \ System \ CentralProcessor \ 0 \ ProcessorNameString
HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ DigitalProductId
HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProductId

HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ BuildLabEx
HKLM \ HARDWARE \ DESCRIPTION \ System \ MultifunctionAdapter \ 0 \ DiskController \ 0 \ DiskPeripheral \ 0
(può essere specifico per schede con RAID in uso)

Se si desidera ottenere il disco seriale senza WMI, inviare una chiamata DeviceIoControl al dispositivo di azionamento fisico. Codice di esempio in VB.NET: http://www.dreamincode.net/code/snippet429.htm

Per CPUID, prova questo: http: // devpinoy .org / blogs / cvega / archive / 2006/04/07 / 2658.aspx

Per il numero di serie del volume, provare questo: http://www.eggheadcafe.com/articles /20021019.asp

Google è tuo amico ;-)

Mi piace GetSystemInfo ma non è così copre le unità fisiche ..

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top