您的位置:首页 > 编程语言 > C#

c#如何获得cpu,硬盘的物理序列号

2010-08-06 09:39 477 查看
简介:这是c#如何获得cpu,硬盘的物理序列号的详细页面,介绍了和c/c++,有关的知识

using system;
using system.runtime.interopservices;
using  system.management;
namespace hardware
{
  /// <summary>
  /// hardware_mac 的摘要说明。
   /// </summary>
  public class hardwareinfo
  {
    //取机器名
    public string gethostname()
    {
      return system.net.dns.gethostname();
    }

    //取cpu编号
    public string getcpuid()
    {
      try
      {
        managementclass mc = new managementclass("win32_processor");

        managementobjectcollection moc = mc.getinstances();

        string strcpuid = null ;
        foreach( managementobject mo in moc )
        {
          strcpuid = mo.properties["processorid"].value.tostring();
          break;
        }
        return strcpuid;
      }
      catch
      {
        return "";
      }

    }//end method

    //获取cpu序列号

    public string getcpuid2()

    {
    try
    {
      System.Management.ManagementObjectSearcher   Wmi   =   new   ManagementObjectSearcher                             ( "SELECT   *   FROM   Win32_Processor ");
      string   tmpUint32_1   =   string.Empty;
      foreach(ManagementObject   WmiObj   in   Wmi.Get())
      {
        tmpUint32_1   =WmiObj[ "ProcessorId "].ToString();
      }
      this.textBox2.Text   =   tmpUint32_1;
      this.gProgressBar1.Value   ++;
    }
    catch(Exception   ex2)
    {
      throw   new   Exception(ex2.ToString());
    }

    }

    //取第一块硬盘编号
    public string getharddiskid()
    {
      try
      {
        managementobjectsearcher searcher = new managementobjectsearcher("select * from win32_physicalmedia");
        string strharddiskid = null ;
        foreach(managementobject mo in searcher.get())
        {
          strharddiskid = mo["serialnumber"].tostring().trim();
          break;
        }
        return strharddiskid ;
      }
      catch
      {
        return "";
      }
    }//end

    //获取磁盘序列号

    public string getharddiskid2()

    {
    try
    {
      System.Management.ManagementObjectSearcher   cmicWmi   =   new                                      ManagementObjectSearcher( "SELECT   *   FROM   Win32_DiskDrive ");
      System.UInt32   tmpUint32   =   0;
      foreach(ManagementObject   cmicWmiObj   in   cmicWmi.Get())
      {
        tmpUint32   =   Convert.ToUInt32(cmicWmiObj[ "signature "].ToString());
      }
      this.textBox1.Text   =   tmpUint32.ToString();
      this.gProgressBar1.Value   ++;
    }
    catch(Exception   ex1)
    {
      throw   new   Exception(ex1.ToString());
    }

    }

  }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息