国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#獲取進程和對進程的操作

2020-01-24 03:26:33
字體:
來源:轉載
供稿:網友

最近看到一個考試系統,有個功能是用來監視進程的。一旦發現如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;
        }
    }
}


效果如下:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 云龙县| 伊吾县| 阿拉善左旗| 弥勒县| 通道| 禄劝| 三都| 宿州市| 涡阳县| 廊坊市| 肃南| 读书| 沁阳市| 南丰县| 鹤山市| 通许县| 油尖旺区| 顺昌县| 清丰县| 三台县| 全州县| 邻水| 龙口市| 叶城县| 江门市| 朔州市| 潍坊市| 西充县| 吴川市| 海南省| 马边| 库伦旗| 新昌县| 汉川市| 龙井市| 当涂县| 保定市| 道孚县| 赣榆县| 贞丰县| 宜阳县|