VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > C#教程 >
  • c#的查杀进程

制作者:剑锋冷月 单位:无忧统计网,www.51stat.net
 

  .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 FilesSearchNetSearchNet.exe
Modules[0].ModuleName:SearchNet.exe
Modules[0].FileVersionInfo:
file:       C:Program FilesSearchNetSearchNet.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:WINDOWSsystem32svchost.exe
Modules[0].ModuleName:svchost.exe
Modules[0].FileVersionInfo:
file:       C:WINDOWSsystem32svchost.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     英语(美国)



相关教程