国产探花免费观看_亚洲丰满少妇自慰呻吟_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;
        }
    }
}


效果如下:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 全州县| 长顺县| 沈丘县| 集贤县| 遵化市| 西充县| 屏山县| 沅江市| 三穗县| 龙井市| 水富县| 泾川县| 白河县| 潞西市| 临安市| 绥江县| 淄博市| 泽州县| 晴隆县| 崇义县| 湟源县| 五河县| 定南县| 文登市| 延长县| 行唐县| 化德县| 漳平市| 子长县| 江门市| 马山县| 清徐县| 福建省| 大新县| 吉水县| 文成县| 郯城县| 象州县| 麻阳| 鄄城县| 南江县|