• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

WMI in C#[强类型操作]

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

C# 进行WMI操作的内容封装在System.Management.dll中,具体的在MSDN有详细描述,默认是用[“**’]去读取和设置属性等。

此处介绍一个自动生成强类型的包装软件,这样处理起来就简单了很多,不用在反复的查看参数等信息了。

1、 使用WMIExplorer生成WMI对应的包装类

2、 针对生成类可以进行强类型操作。

WMIExplorer可以在http://www.primaltools.com/downloads/communitytools/中找到。

如上图示,选择需要操作的CIM类别,右键生成即可。生成类包括了各种属性和操作的方法。

以Win32_Process管理机器上的进程为例,针对生成的类的操作方法:

using ROOT.CIMV2.Win32;Process.StaticScope = this.scope;
var ps = Process.GetInstances();
foreach (var p in ps)
{
using(Process m = p as Process)
{
System.Diagnostics.Debug.WriteLine(m.Name);
if (m.Name == "notepad.exe")
{
m.Terminate(1);
}
}
}
uint pid;
Process.Create("notepad.exe", null, null, out pid);
var my = Process.GetInstances(this.scope, "ProcessId=" + pid.ToString());
if (my.Count > 0)
{
var i = my.GetEnumerator();
i.MoveNext();
Process p = i.Current as Process;
p.Terminate(1);
}

//另一种形式的对比:
ManagementObject mo = new ManagementClass(this.scope, new ManagementPath("MSFT_SIPESUserContactData"), new ObjectGetOptions()).CreateInstance();
                    mo["UserInstanceID"] = this.userId;
                    mo["SIPURI"] = sip;
                    mo["GroupID"] = groupIds;
                    mo["Name"] = name;
                    mo["Subscribed"] = true;
                    mo.Put();
 
                    SIPESUserContactData.StaticScope = this.scope;
                    SIPESUserContactData c = SIPESUserContactData.CreateInstance();
                    c.LateBoundObject["UserInstanceID"] = this.userId;
                    c.LateBoundObject["SIPURI"] = sip;
                    c.LateBoundObject["GroupID"] = groupIds;
                    c.LateBoundObject["Name"] = name;
                    c.LateBoundObject["Subscribed"] = true;
                     c.CommitObject();
以上可见,由于生成类中包括了属性名字,即使使用名字时,直接参考类就行了。

方便了很多。

这个例子是操作进程和Office Communicator服务器上的联系人的操作示例等。

http://cid-56b433ad3d1871e3.office.live.com/self.aspx/.Public/WMIDemo.zip


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap