C#下的查殺進程

來源:互聯網
上載者:User

C#下的查殺進程

.net對進程管理的封裝非常好,通過System.Diagnostics.Process.GetProcesses()方法可以獲得系統內各進程的數組,通過枚舉可獲得系統內的所有進程(比Windows內建的進程瀏覽器看到的還多)。

    ProcessName屬性獲得的是檔案名稱的首碼,即NotePad,不包含後面的.exe。

    要獲得更多的資訊,需要取得Modules屬性數組,但並不是每個進程都能擷取Modules屬性,所以必須要使用try..catch語句排除異常。該數組的第一個成員[ 0 ].FileName包含了執行程式的完整檔案名稱,等同於ProcessModule;序號大於0的成員往往包含該程式調用的dll資訊,得到的結果很有點像反木馬程式。

    Kill()方法用來殺進程,被殺的程式不會彈出類似儲存檔案的對話方塊,是個十足的冷血的快刀手。

    StartInfo屬性是用於啟動新進程的,不適用於檢索已啟動並執行進程。

private void btnProcess_Click(object sender, System.EventArgs e)
        {
            System.Diagnostics.Process []myPs ;
            myPs=System.Diagnostics.Process.GetProcesses();
            this.richTextBox1.Clear();
            foreach (System.Diagnostics.Process p   in myPs)
            {
                if (p.Id!=0 )
                {
                    string myS="進程名稱"+p.ProcessName+"  ID:"+p.Id.ToString();
                    try//由於進程不同,有的進程不包含Modules資訊,所以要用try保護
                    {
                        if (p.Modules !=null)
                            if (p.Modules.Count>0)
                            {
                                System.Diagnostics.ProcessModule pm=p.Modules[0];

                                myS+="/n Modules[0].FileName:"+pm.FileName;
                                myS+="/n Modules[0].ModuleName:"+pm.ModuleName;
                                myS+="/n Modules[0].FileVersionInfo:/n"+pm.FileVersionInfo.ToString();
                                if (pm.FileName.ToLower()==this.textBox1.Text.Trim().ToLower())
                                    p.Kill();
                            }
                    }
                    catch
                    {}
                    finally
                    {
                        this.richTextBox1.Text += myS+"/n==========================/n";
                    }
                }
            }

 

        程式的執行結果片段:

進程名稱SearchNet  ID:3092
 Modules[0].FileName:C:/Program Files/SearchNet/SearchNet.exe
 Modules[0].ModuleName:SearchNet.exe
 Modules[0].FileVersionInfo:
File:             C:/Program Files/SearchNet/SearchNet.exe
InternalName:     SearchNet
OriginalFilename:
FileVersion:      1, 0, 2, 4
FileDescription:  IE地址欄搜尋程式
Product:          地址欄搜尋
ProductVersion:   1, 0, 2, 4
Debug:            False
Patched:          False
PreRelease:       False
PrivateBuild:     False
SpecialBuild:     False
Language          中文(中國)

==========================
進程名稱svchost  ID:1700
 Modules[0].FileName:C:/WINDOWS/system32/svchost.exe
 Modules[0].ModuleName:svchost.exe
 Modules[0].FileVersionInfo:
File:             C:/WINDOWS/system32/svchost.exe
InternalName:     svchost.exe
OriginalFilename: svchost.exe
FileVersion:      5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)
FileDescription:  Generic Host Process for Win32 Services
Product:          Microsoft Windows Operating System
ProductVersion:   5.1.2600.2180
Debug:            False
Patched:          False
PreRelease:       False
PrivateBuild:     False
SpecialBuild:     False
Language          英語(美國)

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.