Maison  >  Article  >  développement back-end  >  Comment obtenir des informations sur le matériel informatique via la programmation C# ?

Comment obtenir des informations sur le matériel informatique via la programmation C# ?

黄舟
黄舟original
2017-08-07 13:10:222032parcourir

Cet article présente principalement la méthode de programmation C# pour obtenir diverses informations sur le matériel informatique, et analyse les compétences opérationnelles et les précautions pertinentes pour C# pour obtenir le processeur de l'ordinateur, la carte mère, le disque dur, le numéro de BIOS et d'autres informations sous forme d'exemples. Les amis qui en ont besoin peuvent Pour référence,

L'exemple de cet article décrit la méthode d'obtention de diverses informations sur le matériel informatique via la programmation C#. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Obtenez le numéro de CPU :


ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
string strID = null ;
foreach( ManagementObject mo in moc )
{
  strID = mo.Properties["ProcessorId"].Value.ToString();
  break;
}
textBox1.Text += "CPU ID:" + strID;

Retour le résultat :


电脑1:CPU ID:BFEBFBFF00000F27
电脑2:CPU ID:BFEBFBFF00000F27
电脑3:CPU ID:BFEBFBFF00000F29
电脑4:CPU ID:BFEBFBFF00000F29

Obtenir le numéro de la carte mère :


ManagementClass mc = new ManagementClass("Win32_BaseBoard");
ManagementObjectCollection moc = mc.GetInstances();
string strID = null ;
foreach( ManagementObject mo in moc )
{
  strID = mo.Properties["SerialNumber"].Value.ToString();
  break;
}
textBox1.Text += "主板 ID:" + strID;

Renvoie le résultat :


电脑1:主板 ID:
电脑2:主板 ID:CN24401483
电脑3:主板 ID:AZF241001101
电脑4:主板 ID:

Obtenir le numéro du disque dur :


ManagementClass mc = new ManagementClass("Win32_PhysicalMedia");
//网上有提到,用Win32_DiskDrive,但是用Win32_DiskDrive获得的硬盘信息中并不包含SerialNumber属性。
ManagementObjectCollection moc = mc.GetInstances();
string strID = null ;
foreach( ManagementObject mo in moc )
{
  strID = mo.Properties["SerialNumber"].Value.ToString();
  break;
}
textBox1.Text += "硬盘 ID:" + strID;

Renvoyer le résultat :


电脑1:硬盘 ID:4833395344463658202020202020202020202020
电脑2:硬盘 ID:WD-WMAJD1092385
电脑3:硬盘 ID:4a353756354d5939202020202020202020202020
电脑4:硬盘 ID:0637J2FW508014

Obtenir le numéro du BIOS :


ManagementClass mc = new ManagementClass("Win32_BIOS");
ManagementObjectCollection moc = mc.GetInstances();
string strID = null ;
foreach( ManagementObject mo in moc )
{
  strID = mo.Properties["SerialNumber"].Value.ToString();
  break;
}
textBox1.Text += "BIOS ID:" + strID;

Résultat du retour :


电脑1:BIOS ID:
电脑2:BIOS ID:CN24401483
电脑3:BIOS ID:
电脑4:BIOS ID:

Résumé :

D'après les étapes ci-dessus, on peut voir que l'obtention du CPUID via Win32_Processor est incorrect ou le champ Win32_Processor ne contient pas les informations sur le numéro de CPU.

Obtenez des informations sur la carte mère via Win32_BaseBoard, mais toutes les cartes mères n'ont pas de numéros, ou il n'est pas possible d'obtenir les numéros de toutes les cartes mères du système.

Il ne devrait y avoir aucun problème pour obtenir le numéro du disque dur via Win32_PhysicalMedia. Cependant, il est dit en ligne qu'il peut être obtenu via Win32_DiskDrive. En fait, les informations obtenues n'incluent pas du tout SerialNumber.

L'obtention d'informations sur le BIOS via Win32_BIOS est fondamentalement la même que l'obtention d'informations sur la carte mère. Autrement dit : toutes les informations du BIOS de la carte mère n’ont pas de numéro.

De plus, vous pouvez afficher les informations obtenues via chacun des champs ci-dessus et afficher tous les attributs d'information et les valeurs correspondantes un par un. Le code est le suivant :


ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
foreach( ManagementObject mo in moc )
{
 textBox1.Text += "\r\n============CUP信息===========";
 foreach (PropertyData pd in mo.Properties)
 {
   textBox1.Text += "\r\n" + pd.Name + "\t";
   if (pd.Value != null)
   {
     textBox1.Text += pd.Value.ToString();
   }
 }
 textBox1.Text += "\r\n\r\n=======================";
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn