Pergunta

Estou ciente de que posso agarrar o identificador de CPU eo número de série do volume para uma unidade física por meio de consulta WMI, mas WMI geralmente leva o seu tempo doce. Que outras opções mais rápidas, se houver, estão disponíveis para recuperar essas informações? Existem APIs Win32 que iria fazer isso?

Editar: Permita-me esclarecer. Ao identificador de CPU, estou me referindo ao mesmo valor que se obtém por meio de consulta as seguintes propriedades de instância WMI:

  • Win32_Processor :: ProcessorId
  • Win32_LogicalDisk :: VolumeSerialNumber
Foi útil?

Solução

Basta ter em mente que ID da CPU não está sempre disponível.

A propósito, o que você está tentando realizar? Se você deseja gerar uma chave única para uma instância de computador, verifique o Gerando chave exclusiva (Dedo Imprimir) para um computador e Licenciamento de Fins mensagem por Sowkot Osman em codeproject; ele pode dar-lhe algumas sugestões (comentários também ler).

Outras dicas

Você pode consultar o registro do Windows para as informações da unidade, não tenho certeza sobre a CPU embora. Parece que a sua pergunta é abordado neste SO q / a (demonstra uma série de métodos para obter esta informação, mas para a velocidade, talvez recebendo a partir do registro é a sua melhor aposta):

Como listar discos físicos?

WMI realmente leva uma parcela boa de seus dados a partir do registro. O sistema armazena muita informação lá sobre o sistema, e é obviamente muito rápido para responder.

Se você estiver olhando para bloqueio à placa-mãe, CPU e / ou HDD para o licenciamento razões, confira os seguintes valores:
HKLM \ HARDWARE \ DESCRIPTION \ System \ BIOS \ BaseBoardManufacturer
HKLM \ HARDWARE \ DESCRIPTION \ System \ BIOS \ BaseBoardProduct
HKLM \ HARDWARE \ DESCRIPTION \ System \ CentralProcessor \ 0 \ Identificador
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
(pode ser específica para placas com RAID em uso)

Se você deseja obter o número de série do disco sem WMI, emitir uma chamada DeviceIoControl para o dispositivo de unidade física. código de amostra em VB.NET: http://www.dreamincode.net/code/snippet429.htm

Para CPUID, tente o seguinte: http: // devpinoy .org / blogs / cvega / Arquivo / 2006/04/07 / 2658.aspx

Para Volume Serial Number, tente o seguinte: http://www.eggheadcafe.com/articles /20021019.asp

O Google é seu amigo; -)

Eu gosto GetSystemInfo mas que doesn 't cobrir unidades físicas ..

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top