首页 > 开发 > 综合 > 正文

C#下的查杀进程

2024-07-21 02:29:07
字体:
来源:转载
供稿:网友
   .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          英语(美国)

商业源码热门下载www.html.org.cn

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表