找回密码
 加入
搜索
查看: 2481|回复: 4

[系统综合] (已解决)请教如何 结束路径为指定目录下的所有进程

  [复制链接]
发表于 2011-7-5 15:05:33 | 显示全部楼层 |阅读模式
本帖最后由 q115643492 于 2011-7-10 13:50 编辑

请教如何 结束路径为指定目录下的所有进程 ,进程名未知。比如结束路径为c:\1下的所有进程。
发表于 2011-7-5 16:01:22 | 显示全部楼层
1.列出所有进程PID
ProcessList   基本函数
2.取每个进程路径
GetModuleFileNameEx   API函数
3.判断其路径为指定路径的就结束它
ProcessClose   基本函数
 楼主| 发表于 2011-7-5 16:15:03 | 显示全部楼层
谢谢,思路我懂,可是组织代码时有点雾水,看了几个相关帖子,还是写不完整,麻烦还是示范哈子代码。谢谢!
发表于 2011-7-5 16:49:41 | 显示全部楼层
Local $MonitorDir='D:\My Tool\'
While 1
        $array=ProcessList()
        For $i=1 To $array[0][0]
                If StringInStr(_GetModuleFileNameEx($array[$i][1]),$MonitorDir) Then ProcessClose($array[$i][1])
        Next
        Sleep(250)
WEnd

Func _GetModuleFileNameEx($_Pid)
        $_Hwnd=DllCall("Kernel32.dll","hwnd","OpenProcess","dword",0x0400+0x0010,"int",0,"dword",$_Pid)        
        $_Return=DllCall("Psapi.dll","long","GetModuleFileNameEx","hwnd",$_Hwnd[0],"long",0,"str",0,"long",255)        
        DllCall("Kernel32.dll","int","CloseHandle","hwnd",$_Hwnd[0])        
        If StringInStr($_Return[3],"") Then Return $_Return[3]
        Return ""
EndFunc 
 楼主| 发表于 2011-7-10 13:50:25 | 显示全部楼层
谢谢,已经解决。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-1 23:38 , Processed in 0.083953 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表