http://dotnet.aspx.cc/ShowDetail.aspx?id=6977HLMY-ELPN-4KIR-BI89-7YS2LNENT5HR

解决方案 »

  1.   

    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    using System.Management ;namespace WindowsApplication1
    {
    /// <summary>
    /// Summary description for Form1.
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
    private System.Windows.Forms.Button button1;
    private System.Windows.Forms.Label label1;
    private System.Windows.Forms.Label label2;
    private System.Windows.Forms.Label label3;
    private System.Windows.Forms.Label label4;
    private System.Windows.Forms.Label label5;
    /// <summary>
    /// Required designer variable.
    /// </summary>
    private System.ComponentModel.Container components = null; public Form1()
    {
    //
    // Required for Windows Form Designer support
    //
    InitializeComponent(); //
    // TODO: Add any constructor code after InitializeComponent call
    //
    } /// <summary>
    /// Clean up any resources being used.
    /// </summary>
    protected override void Dispose( bool disposing )
    {
    if( disposing )
    {
    if (components != null) 
    {
    components.Dispose();
    }
    }
    base.Dispose( disposing );
    } #region Windows Form Designer generated code
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
    this.button1 = new System.Windows.Forms.Button();
    this.label1 = new System.Windows.Forms.Label();
    this.label2 = new System.Windows.Forms.Label();
    this.label3 = new System.Windows.Forms.Label();
    this.label4 = new System.Windows.Forms.Label();
    this.label5 = new System.Windows.Forms.Label();
    this.SuspendLayout();
    // 
    // button1
    // 
    this.button1.Location = new System.Drawing.Point(24, 24);
    this.button1.Name = "button1";
    this.button1.TabIndex = 0;
    this.button1.Text = "button1";
    this.button1.Click += new System.EventHandler(this.button1_Click);
    // 
    // label1
    // 
    this.label1.Location = new System.Drawing.Point(24, 104);
    this.label1.Name = "label1";
    this.label1.Size = new System.Drawing.Size(240, 23);
    this.label1.TabIndex = 1;
    this.label1.Text = "label1";
    // 
    // label2
    // 
    this.label2.Location = new System.Drawing.Point(24, 134);
    this.label2.Name = "label2";
    this.label2.Size = new System.Drawing.Size(240, 23);
    this.label2.TabIndex = 2;
    this.label2.Text = "label2";
    // 
    // label3
    // 
    this.label3.Location = new System.Drawing.Point(24, 164);
    this.label3.Name = "label3";
    this.label3.Size = new System.Drawing.Size(240, 23);
    this.label3.TabIndex = 3;
    this.label3.Text = "label3";
    // 
    // label4
    // 
    this.label4.Location = new System.Drawing.Point(24, 194);
    this.label4.Name = "label4";
    this.label4.Size = new System.Drawing.Size(240, 23);
    this.label4.TabIndex = 4;
    this.label4.Text = "label4";
    // 
    // label5
    // 
    this.label5.Location = new System.Drawing.Point(24, 224);
    this.label5.Name = "label5";
    this.label5.Size = new System.Drawing.Size(240, 23);
    this.label5.TabIndex = 5;
    this.label5.Text = "label5";
    // 
    // Form1
    // 
    this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
    this.ClientSize = new System.Drawing.Size(292, 273);
    this.Controls.Add(this.label5);
    this.Controls.Add(this.label4);
    this.Controls.Add(this.label3);
    this.Controls.Add(this.label2);
    this.Controls.Add(this.label1);
    this.Controls.Add(this.button1);
    this.Name = "Form1";
    this.Text = "Form1";
    this.ResumeLayout(false); }
    #endregion /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main() 
    {
    Application.Run(new Form1());
    } private void button1_Click(object sender, System.EventArgs e)
    {

    ManagementObjectSearcher my = new ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard");
    foreach(ManagementObject share in my.Get())
    {
    label1.Text= "主板制造商:" + share["Manufacturer"].ToString();
    label2.Text= "产品:" + share["Product"].ToString();
    label3.Text= "主板序列号:" + share["SerialNumber"].ToString();
    }

    //得到cpu序列号
    string strCPUNo = "";
    ManagementClass cimObject = new ManagementClass("Win32_Processor");
    ManagementObjectCollection mocHard = cimObject.GetInstances();
    foreach(ManagementObject moHard in mocHard)
    {
    strCPUNo = moHard.Properties["ProcessorId"].Value.ToString();

    }
    label4.Text = "CPU序列号为:" + strCPUNo;

    //硬盘序列号
    ManagementObject m_objDisk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\""); 
    string strSN = (string)m_objDisk.GetPropertyValue("VolumeSerialNumber"); 
    label5.Text = "硬盘序列号为:" + strSN ; }
    }
    }
    使用 System.Management,注意,要在项目中将此组件引用进来。
      

  2.   

    还有个问题首先得考虑的就是你的硬盘是不是SCSI硬盘
    如果是,那么根本不存在"物理序列号",只可能取得卷标的序列号如果是卷标序列号,要注意的是每次格式化硬盘的时候这个序列号都会变
    代码可以参考:
    http://www.csdn.net/Develop/Read_Article.asp?Id=25196如果是物理序列号:
    String HDid;
    ManagementClass cimobject = new ManagementClass("Win32_DiskDrive");
    ManagementObjectCollection moc = cimobject.GetInstances();
    foreach(ManagementObject mo in moc)
    {
    HDid = (string)mo.Properties["Model"].Value;
    MessageBox.Show(HDid ); 
    }
      

  3.   

    为什么这段代码放在ASP.NET就没任何显示
      

  4.   

    试着把你的程序放在WebService上看看