找回密码
 加入
搜索
查看: 1375|回复: 7

结束指定目录下的进程

[复制链接]
发表于 2009-9-17 11:04:40 | 显示全部楼层 |阅读模式
本帖最后由 kisyan 于 2009-9-17 11:08 编辑

我需要结束进程为C:\Program Files\KingStone\ClientLock\svchost.exe 路径的svchost.exe
后再运行它 不知道有没有办法办到
各位高手们帮忙看下

因为这个进程电脑运行时间久了网页打不开
发表于 2009-9-17 11:19:31 | 显示全部楼层
怎么和系统进程一个名字
发表于 2009-9-17 11:29:55 | 显示全部楼层
$spath = 'C:\Program Files\KingStone\ClientLock\svchost.exe'
$objWMIService = ObjGet("winmgmts:\\.\root\CIMV2:win32_process")
$colItems = $objWMIService.instances_
For $objItem In $colItems
        If $objItem.executablepath = $spath Then ProcessClose($objItem.ProcessId)
Next
Run($spath)
发表于 2009-9-17 11:34:23 | 显示全部楼层
牛,学习学习
 楼主| 发表于 2009-9-17 12:49:10 | 显示全部楼层
3# afan


感谢 AFAN兄
代码我测试一下
 楼主| 发表于 2009-9-17 21:40:27 | 显示全部楼层
我试了一下这段代码  
需要10几秒钟才能执行完成  不知道能不能结束后马上执行svchost.exe这个文件
发表于 2009-9-17 22:53:48 | 显示全部楼层
本帖最后由 afan 于 2009-9-17 23:05 编辑

可能是结束需要等待吧~
你可以在最后一句Run($spath) 前面加一句 Msgbox(0,0,'结束进程') 看看是否执行完结束进程
Dim $a, $spath = 'C:\Program Files\KingStone\ClientLock\svchost.exe'
$objWMIService = ObjGet("winmgmts:\\.\root\CIMV2:win32_process")
$colItems = $objWMIService.instances_
For $objItem In $colItems
        If $objItem.executablepath = $spath Then
              $a = $objItem.ProcessId
              ProcessClose($a)
        Endif
Next
If ProcessExists($a) = 0 then msgbox(0, 0, $spath & ' 进程已结束') 
Run($spath)
发表于 2009-9-20 01:05:10 | 显示全部楼层
#include<winapi.au3>
Dim $_Path="C:\Program Files\Internet Explorer\IEXPLORE.EXE"
$_Process=StringMid($_Path,StringInStr($_Path,"",0,-1)+1,StringLen($_Path))
$_List=ProcessList($_Process)
for $i=1 To $_List[0][0]
        If _GetModuleFileNameEx($_List[$i][1])=$_Path Then ProcessClose($_List[$i][1])
Next

Func _GetModuleFileNameEx($pid)
        $_Prhwnd = DllCall('Kernel32.dll', 'hwnd', 'OpenProcess', 'long', 0x10+0x400, 'int', 0, 'long',$pid)        
        If $_Prhwnd[0]=0 Then Return _WinAPI_GetLastError()
        $_Return = DllCall('PSAPI.DLL', 'long', 'GetModuleFileNameEx', 'hwnd', $_Prhwnd[0], 'hwnd', 0, 'str', 0,"dword",255)        
        _WinAPI_CloseHandle($_Prhwnd[0])
        Return $_Return[3]
EndFunc
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2025-1-12 13:30 , Processed in 0.075195 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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