手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#获取进程和对进程的操作
C#获取进程和对进程的操作
摘要:最近看到一个考试系统,有个功能是用来监视进程的。一旦发现如Communicator.exe这样的违禁软件就立即杀死进程并上报给服务器。我稍微...

最近看到一个考试系统,有个功能是用来监视进程的。一旦发现如Communicator.exe这样的违禁软件就立即杀死进程并上报给服务器。我稍 微研究了一下,这个功能实现起来其实很简单。就是使用ManagementObjectSearcher获取进程列表,然后放在一个Collection 里,之后就可以按照自己的逻辑去做了。

复制代码 代码如下:

using System;

using System.Management;

namespace ConsoleApplication3

{

class Program

{

static void Main(string[] args)

{

// Show Process List

Console.WriteLine("===========Process List===========");

ManagementObjectCollection objects = new ManagementObjectSearcher("SELECT * FROM Win32_Process").Get();

foreach (ManagementObject item in objects)

{

Console.WriteLine((item["Name"].ToString()));

}

// Create Ban List

Console.WriteLine("===========Ban List===========");

string lst = "Communicator.exe,POWERPNT.exe,notepad.exe";

string[] bannedProc = lst.Split(‘,‘);

foreach (string s in bannedProc)

{

Console.WriteLine(s);

}

// Search and Destroy

Console.WriteLine("===========Search and Destroy===========");

Console.WriteLine("Searching for banned process...");

int count = 0;

foreach (string item in bannedProc)

{

if (DetectProcess(item))

{

count++;

Console.WriteLine("Process [{0}] Detected!", item);

Console.WriteLine("[{0}] was killed {1}.", item, KillProcess(item) ? "Successfully" : "Unsucessfully");

}

}

Console.WriteLine("Done, {0} banned process found", count);

}

protected static bool DetectProcess(string pProcessName)

{

ManagementObjectCollection objects = new ManagementObjectSearcher("SELECT * FROM Win32_Process").Get();

foreach (ManagementObject item in objects)

{

string str = item["Name"].ToString();

if (str.Trim().ToUpper() == pProcessName.Trim().ToUpper())

{

return true;

}

}

return false;

}

public static bool KillProcess(string pProcessName)

{

ManagementObjectCollection objects = new ManagementObjectSearcher("SELECT * FROM Win32_Process").Get();

foreach (ManagementObject item in objects)

{

string str = item["Name"].ToString();

if (str.Trim().ToUpper() == pProcessName.Trim().ToUpper())

{

string[] args = new string[] { "0" };

item.InvokeMethod("Terminate", args);

return true;

}

}

return false;

}

}

}

效果如下:

C#获取进程和对进程的操作1

【C#获取进程和对进程的操作】相关文章:

使用 C# 动态编译代码和执行的代码

C#排序算法之快速排序

C#从实体对象集合中导出Excel的代码

浅解关于C#多线程的介绍

C# 对MongoDB 进行增删改查的简单操作实例

C#关机小程序源码

C#访问应用程序配置文件的方法

C#控制台输出进度和百分比的实例代码

c#初学简单程序实例代码介绍

C# 分支与循环介绍

精品推荐
分类导航