使用WMI控制Windows进程
来源:互联网 发布:python requests get 编辑:程序博客网 时间:2024/05/16 13:02
本文主要介绍两种WMI的进行操作:检查进程是否存在、创建新进行
代码如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.Management;
using System.Threading;
namespace TJVictor.WMI
{
public class Win32_Process:WMIBaseClass
{
#region Property
private int timeout = 30;
public int TimeOut
{
get { return timeout; }
set { timeout = value; }
}
private string wqlSelect = "select * FROM Win32_Process where Name='{0}'";
#endregion
#region Construction
public Win32_Process()
: base()
{
base.Connection();
}
public Win32_Process(string domain, string Ip, string user, string psd)
: base(domain, Ip, user, psd)
{
base.Connection();
}
#endregion
#region public function
public bool IsProcessExist(string name)
{
if (!GetSelectQueryCollection(wqlSelect,name).Count.Equals(0))
return true;
return false;
}
public void CreateProcess(string name)
{
ManagementClass processClass = new ManagementClass("Win32_Process");
processClass.Scope = base.Scope;
ManagementBaseObject mbo = processClass.GetMethodParameters("Create");
mbo["CommandLine"] = string.Format(name);
ManagementBaseObject result = processClass.InvokeMethod("Create", mbo, null);
//检测执行结果
CheckExceptionClass.CheckProcessException(int.Parse(result["returnValue"].ToString()));
//检测进程是否执行完成
int tempTimeout = this.timeout;
while (!GetSelectQueryCollection("select * FROM Win32_Process where ProcessID='{0}'",result["ProcessID"].ToString()).Count.Equals(0))
{
if (tempTimeout.Equals(0))
{
throw new TJVictor.WMI.WmiException.ProcessException(
string.Format("在 {0} 上执行 {1} 操作失败,执行超时", base.Ip, name));
}
tempTimeout--;
Thread.Sleep(1000);
}
}
#endregion
}
}
如需转载,请注明本文原创自CSDN TJVictor专栏:http://blog.csdn.net/tjvictor
- 使用WMI控制Windows进程
- 使用WMI来控制Windows服务
- 使用WMI来控制Windows目录
- 编程使用WMI 控制连接属性
- 编程使用WMI 控制连接属性
- 编程使用WMI 控制连接属性
- 编程使用WMI 控制连接属性
- PowerShell 2.0之使用WMI管理Windows(一)WMI基础
- 如何使用 WMI 枚举当前系统进程?
- 如何使用WMI获取进程信息
- 使用WMI来操作Windows共享机制
- 【PERL】使用wmi获取windows硬件信息
- Windows进程控制
- 基于visual c++之windows核心编程代码分析(52)使用WMI 获取进程启动参数
- 通过WMI列出Windows系统进程(VB.net)
- 使用WMI
- 演示如何使用WMI获得本地机器的进程列表
- Windows编程-进程的控制
- jQuery新手入门(六) AJAX快餐
- 关于c#的四舍五入问题
- 一个用javascript写的select支持上下键、首字母筛选以及回车取值的功能
- linux fork函数的精辟解说
- jQuery新手入门 (七) jQuery动画-让页面动起来!
- 使用WMI控制Windows进程
- 有些控件执行事件时,要在js函数之后加上return false,用来js函数执行后禁止提交表单
- 创建tablespace命令
- jQuery新手入门(八) 插播:jQuery实施方案
- jQuery新手入门(九) jQuery工具函数
- 在struts2中,前端页面表示国际化
- c#的namespace使用经验
- C++和java的比较
- JavaScript Switch 语句