xymc 发表于 2011-10-10 20:57:38

查找某文件,并结束该目录的所有进程

查找C盘中的dydq.ico,并结束这个文件夹内的所有exe程序的进程

因为dydq.ico这个文件所在的目录是随机的,每次开机都会生成新的目录,所以要先查找它在哪个目录生成,然后再结束掉该目录的所有进程。

xms77 发表于 2011-10-10 21:07:08

总是在C盘的一级目录中吗?如果是就简单了。

xymc 发表于 2011-10-10 21:14:56

回复 1# xymc


C:\WINDOWS\system32\xxx 这个目录里面的一个文件夹

xms77 发表于 2011-10-10 22:12:24

不知道能不能满足你的要求?

#include <file.#include <file.au3>
#include <array.au3>
$FolderList = _FileListToArray("C:\windows\system32",'*',2) ;列出system32下所有文件夹
If Not @error Then
        For $i = 1 To $FolderList
                $FileExistResult = FileExists("c:\windows\system32\"&$FolderList[$i]&"\dydq.ico") ; 检查是否存在dydq.ico这个文件
                If $FileExistResult = 1 Then    ;如果存在
                        $ExeFilelist = _FileListToArray("c:\windows\system32\"&$FolderList[$i], "*.exe",1) ;列出所有可执行文件
                        If Not @error Then
                                For $j = 1 To $ExeFilelist
                                        ProcessClose($ExeFilelist[$j]);结束进程
                                Next
                        EndIf
                EndIf
        Next
EndIf

hzxymkb 发表于 2011-10-10 22:12:46

这个嘛,应该不难,循环一下就行了!

gzh888666 发表于 2011-10-10 22:29:49

本帖最后由 gzh888666 于 2011-10-10 22:30 编辑

4楼的正解!{:face (317):} 可以已解决了,
如果还需要递归子目录。func 调用函数本身就可以了!
不过这个目录里很多都是系统进程呀!你结束了就完蛋了!

xms77 发表于 2011-10-11 12:35:03

回复 6# gzh888666
楼主说那个目录是每次开机自己生成的应该问题不大

xymc 发表于 2011-10-11 20:28:38

回复 4# xms77


    运行直接退出了

gzh888666 发表于 2011-10-11 20:36:53

看一下ProcessClose的返回值,也有可能进程保护!

xymc 发表于 2011-10-11 20:38:12

回复 6# gzh888666

http://123.zhntwb.com/pu.gif
如图所示,先要找到dydq.ico这个文件在C:\WINDOWS\system32\wins这个目录里面,然后结束掉这个目录里面的exe程序进程(就1个exe,得是随机的进程名,文件名每次都不一样)

xms77 发表于 2011-10-11 20:40:05

回复 8# xymc
代码运行完就会退出的,关键是有没有达到你的目的

gzh888666 发表于 2011-10-11 20:41:01

4楼的代码就可以实现。ProcessClose的返回值查看一下。

xms77 发表于 2011-10-11 21:32:31

回复 10# xymc
你的意思是指那个exe执行后产生一个随机的进程名吗?怎么还能这样啊,太流氓了!

xms77 发表于 2011-10-11 21:34:06

回复 10# xymc
你看一下能不能手动删除那个exe文件,会不会报错?

xymc 发表于 2011-10-11 23:42:39

本帖最后由 xymc 于 2011-10-11 23:43 编辑

回复 11# xms77


    没有达到目的,我试过用ProcessClose(进程名)是可以结束的那个进程(任务管理器不能结束,但au3这个命令可以结束)
但由于是随机进程,所以我只能先查找dydq.ico这个文件,然后结束该目录下的exe程序进程
结束后当然可以删除
页: [1] 2
查看完整版本: 查找某文件,并结束该目录的所有进程