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 ; }
}
}声明:转载,仅供参考

解决方案 »

  1.   

    ManagementObjectSearcher 是什么啊!
      

  2.   

    用WMI
    //如果是对远程机器进行访问,必须要进行连接,本地可以省略ConnectionOptions oConn = new ConnectionOptions(); //用户名和口令是你登陆对方是必须输入的,也就是对方给你分配的权限
    oConn.Username = "ZhangDong"; //访问对方的用户名
    oConn.Password = "1234"; //访问对方的口令// ServerName 是对方机器的名字,也可以是 IP 地址,\\root\\cimv2 照抄就行
    ManagementPath p = new ManagementPath("\\\\ServerName\\root\\cimv2");   ManagementScope ms = new ManagementScope(p,oConn);ObjectQuery oq = new ObjectQuery("SELECT * FROM Win32_PhysicalMemory");ManagementObjectSearcher query1 = new ManagementObjectSearcher(ms,oq);ManagementObjectCollection queryCollection1 = query1.Get();            //列举所有对像,并显示在 listBox 中       foreach (ManagementObject service in queryCollection1)      {         // 列表框中显示的是进程的名称和所在路径,当然还有其它信息,比如进程句柄、//进程优先级、现在的运行状态等,我们没有全部列举出来,感兴趣的话您可以自//己试试        listBox1.Items.Add("Service: " + service["Name"] + " FilePath: " + service["ExecutablePath"]);
    SELECT * FROM Win32_根据所需的要求来决定,可到网上查查CPU,进程,主板都可以访问
      

  3.   

    http://community.csdn.net/Expert/topic/3528/3528062.xml?temp=.2281http://community.csdn.net/Expert/topic/3173/3173348.xml?temp=9.499758E-02回答都很详细