网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

WMI使用教程(译)

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
)
stringAction = "start";
else
stringAction = "stop";

MessageBox.Show("Failed to " + stringAction + " service " + ServiceName + ".",
"Start/Stop Service Failure");
}

//clean-up objects
ServiceName = "";
ServiceAction = "";
ServiceItem = null;

//Status
updateStatus("Ready");
this.Update();
}

//----------------------------------
// Completion Handler
//----------------------------------
using System;
using System.Management;

namespace completionHandler
{
/// <summary>
/// MyHandler class handle notification when InvokeMethod call is complete
/// </summary>
public class MyHandler
{
private bool isComplete = false;
private ManagementBaseObject returnObject;

/// <summary>
/// Trigger Done event when InvokeMethod is complete
/// </summary>
public void Done(object sender, ObjectReadyEventArgs e)
{
isComplete = true;
returnObject = e.NewObject;
}

/// <summary>
/// Get property IsComplete
/// </summary>
public bool IsComplete
{
get
{
return isComplete;
}
}

/// <summary>
/// Property allows accessing the result object in the main function
/// </summary>
public ManagementBaseObject ReturnObject
{
get
{
return returnObject;
}
}

}
}

ProcessesControl控件介绍:
该控件主要用来显示系统中正在运行的进程,如:用户进程.CPU利用率,
内存的使用状况.我们可以通过GetOwner(User,Domain)方法来得知进程
的所有者是谁.User和Domain是入口参数,可是问题是我们如何从InvokeMethod
中得到这入口参数呢?这里我们需要实现InvokeMethod.一下讨论两种情况
1.我们不需要异步操作,我们仅仅只需要一个string数组就可以完成
2.当我们需要异步操作的时候也只需要一个completionHandlerObj.ReturnObject
属性来收集对象.

代码如下:
//-------------------------------------------------
//Get process owner info without the observer object
//--------------------------------------------------
//Createan array containing all arguments for the method

string methodArgs = {"", ""};

//Get process owner info
mo.InvokeMethod("GetOwner", methodArgs);

//methodArgs[0] - contain process user
//methodArgs = contain process domain

//-----------------------------------------------
//Getprocess owner info with the observer object
//-----------------------------------------------
mo.InvokeMethod(observer,"GetOwner", null);

while (!completionHandlerObj.IsComplete)
{
System.Threading.Thread.Sleep(500);
}

if (completionHandlerObj.ReturnObject["returnValue"].ToString() == "0")
structProcess.stringUserName = completionHandlerObj.ReturnObject.Properties["User"].Value.ToString();
else
structProcess.stringUserName = "";

下面讨论如何终结进程:

终结一个指定的进程很类似与上面提到的启动或终止一项服务.
首先当然是用ManagementObject对象来指定你要的进程,然后调用
InvokeMethod(observer,"Terminate",null)来终止一个进程.

代码如下:
//Set up a handler for the as

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号