程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C#下的查殺進程

C#下的查殺進程

編輯:關於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

進程名稱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 英語(美國)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved