C#访问WMI信息

来源:互联网 发布:阿里云官方客服电话 编辑:程序博客网 时间:2024/05/17 02:47


1、什么是WMI
Windows Management Instrumentation (WMI) 是 Windows 操作系统的一个组件,允许通过编程方式访问企业环境中的管理信息。.NET Framework 中的 WMI 基于原始的 WMI 技术,允许利用 .NET Framework 中的编程优势进行同样的应用程序和提供程序开发。
2、为.NET使用WMI设置环境
需要在新建项目添加System.Managemen.dll的引用,并引入System.Management;
3、示例
获取指定磁盘的描述信息?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Management;   //Reference System.Management first

namespace WMISample
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            SelectQuery selectQuery = new SelectQuery("Win32_DiskDrive");
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(selectQuery);
            foreach (ManagementObject disk in searcher.Get())
            {
               
                MessageBox.Show(disk.ToString());
                MessageBox.Show(disk["Caption"].ToString());
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            WqlObjectQuery wqlQuery = new WqlObjectQuery("select * from Win32_DiskDrive");
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(wqlQuery);
            foreach (ManagementObject disk in searcher.Get())
            {
                MessageBox.Show(disk.ToString());
                MessageBox.Show(disk["Caption"].ToString());
            }
        }

 

    }

}

 

 

 

 


3、示例
(1)获取指定磁盘的容量?
using System; 
using System.Management; 
// This example demonstrates reading a property of a ManagementObject. 
class Sample_ManagementObject 

public static int Main(string[] args)  

  ManagementObject disk = new ManagementObject( 
   "win32_logicaldisk.deviceid=/"c:/""); 
  disk.Get(); 
  Console.WriteLine("Logical Disk Size = " + disk["Size"] + " bytes"); 
  Console.ReadLine();  
  return 0; 

}
 
(2)获取CPU信息
public string cpuinfo()
{
string a="";
ManagementClass mcobject = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mcobject.GetInstances();
foreach(ManagementObject mo in moc)
{
a += "CPU:" + mo.Properties["ProcessorId"].Value.ToString() + "n";
}
return a;
}

 

 

原创粉丝点击