واجهات برمجة التطبيقات في C# للحصول على معرفات وحدة المعالجة المركزية ومحرك الأقراص/وحدة التخزين التسلسلية

StackOverflow https://stackoverflow.com/questions/248305

  •  05-07-2019
  •  | 
  •  

سؤال

أدرك أنه يمكنني الحصول على معرف وحدة المعالجة المركزية والرقم التسلسلي لوحدة التخزين لمحرك الأقراص الفعلي عن طريق الاستعلام عن WMI، لكن WMI عادةً ما يستغرق وقته المناسب.ما هي الخيارات الأسرع الأخرى، إن وجدت، المتاحة لاسترداد هذه المعلومات؟هل هناك واجهات برمجة تطبيقات Win32 يمكنها تحقيق ذلك؟

يحرر: اسمحوا لي أن أوضح.بواسطة معرف وحدة المعالجة المركزية، أشير إلى نفس القيمة التي يحصل عليها المرء عن طريق الاستعلام عن خصائص مثيل WMI التالية:

  • Win32_Processor::ProcessorId
  • Win32_LogicalDisk::VolumeSerialNumber
هل كانت مفيدة؟

المحلول

فقط ضع في اعتبارك أن معرف وحدة المعالجة المركزية ليس متاحًا دائمًا.

بالمناسبة، ما الذي تحاول تحقيقه؟إذا كنت تريد إنشاء مفتاح فريد لمثيل الكمبيوتر، فتحقق من إنشاء مفتاح فريد (بصمة الإصبع) لجهاز كمبيوتر لأغراض الترخيص نشره سوكوت عثمان في Codeproject؛يمكن أن يوفر لك بعض التلميحات (اقرأ أيضًا التعليقات).

نصائح أخرى

يمكنك الاستعلام عن معلومات محرك الأقراص في سجل windows، ولكنك لست متأكدًا من وحدة المعالجة المركزية.يبدو أن سؤالك قد تمت معالجته في سؤال/جواب SO هذا (يوضح عددًا من الطرق للحصول على هذه المعلومات، ولكن بالنسبة للسرعة، ربما يكون الحصول عليها من السجل هو أفضل رهان لك):

كيفية سرد الأقراص الفعلية؟

يأخذ WMI في الواقع جزءًا كبيرًا من بياناته من السجل.يقوم النظام بتخزين الكثير من المعلومات حول النظام، ومن الواضح أنه سريع الاستجابة.

إذا كنت تريد القفل على اللوحة الأم و/أو وحدة المعالجة المركزية و/أو محرك الأقراص الثابتة لأسباب تتعلق بالترخيص، فتحقق من القيم التالية:
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
(قد يكون خاصًا باللوحات التي تستخدم RAID)

إذا كنت ترغب في الحصول على القرص التسلسلي بدون WMI، فقم بإصدار استدعاء DeviceIoControl لجهاز محرك الأقراص الفعلي.نموذج التعليمات البرمجية في VB.NET: http://www.dreamincode.net/code/snippet429.htm

بالنسبة لـ CPUID، جرب هذا: http://devpinoy.org/blogs/cvega/archive/2006/04/07/2658.aspx

للحصول على الرقم التسلسلي للمجلد، جرب هذا: http://www.eggheadcafe.com/articles/20021019.asp

جوجل هو صديقك ؛-)

انا يعجبني احصل على معلومات النظام ولكن هذا لا يغطي محركات الأقراص المادية ..

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top