2008-10-29 4 views
4

Je suis conscient que je peux saisir l'identifiant du processeur et le numéro de série du volume pour un lecteur physique en interrogeant WMI, mais WMI prend généralement son temps. Quelles autres options plus rapides, le cas échéant, sont disponibles pour récupérer ces informations? Y a-t-il des API Win32 qui accompliraient cela?API en C# pour saisir les ID de CPU et le lecteur/volume série

Modifier: Permettez-moi de clarifier. En identifiant de CPU, je fais référence à la même valeur, on obtient en interrogeant les propriétés d'instance WMI suivantes:

  • Win32_Processor :: ProcessorId
  • Win32_LogicalDisk :: VolumeSerialNumber

Répondre

2

Gardez à l'esprit que l'ID de la CPU est pas toujours disponible. En passant, qu'essayez-vous d'accomplir? Si vous souhaitez générer une clé unique pour une instance d'ordinateur, consultez le message Generating Unique Key (Finger Print) for a Computer for Licensing Purposes de Sowkot Osman à Codeproject; il peut vous donner quelques indices (lire aussi les commentaires).

-2

J'aime GetSystemInfo mais ne couvre pas les disques physiques ..

+0

GetSystemInfo n'obtient pas l'ID du processeur tel que mentionné par Brian Cline – faulty

2

Vous pouvez interroger le registre Windows pour les informations sur le lecteur, mais vous n'êtes pas sûr du CPU. Il semble que votre question est abordée dans ce SO q/a (démontre un certain nombre de méthodes pour obtenir cette information, mais pour la vitesse, obtenir peut-être du registre est votre meilleur pari):

How to list physical disks?

2

WMI fait prend une bonne partie de ses données du registre. Le système stocke beaucoup d'informations sur le système, et il est évidemment très rapide de répondre.

Si vous cherchez à verrouiller la carte mère, CPU et/ou disque dur, pour des raisons de licence, consultez les valeurs suivantes:
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 \ LOGICIEL \ Microsoft \ Windows NT \ CurrentVersion \ ProductID
HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ BuildLabEx
HKLM \ HARDWARE \ DESCRIPTION \ System \ MultifunctionAdapter \ 0 \ DiskController \ 0 \ DiskPeripheral \ 0
(peut être spécifique aux conseils avec RAID en cours d'utilisation)

Si vous souhaitez obtenir la série de disques sans WMI, lancez un appel DeviceIoControl sur le périphérique de disque physique. Exemple de code dans VB.NET: http://www.dreamincode.net/code/snippet429.htm

Questions connexes