结束指定目录下的进程
本帖最后由 kisyan 于 2009-9-17 11:08 编辑我需要结束进程为C:\Program Files\KingStone\ClientLock\svchost.exe 路径的svchost.exe
后再运行它 不知道有没有办法办到
各位高手们帮忙看下
因为这个进程电脑运行时间久了网页打不开 怎么和系统进程一个名字 $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) 牛,学习学习 3# afan
感谢 AFAN兄
代码我测试一下 我试了一下这段代码
需要10几秒钟才能执行完成不知道能不能结束后马上执行svchost.exe这个文件 本帖最后由 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) #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
If _GetModuleFileNameEx($_List[$i])=$_Path Then ProcessClose($_List[$i])
Next
Func _GetModuleFileNameEx($pid)
$_Prhwnd = DllCall('Kernel32.dll', 'hwnd', 'OpenProcess', 'long', 0x10+0x400, 'int', 0, 'long',$pid)
If $_Prhwnd=0 Then Return _WinAPI_GetLastError()
$_Return = DllCall('PSAPI.DLL', 'long', 'GetModuleFileNameEx', 'hwnd', $_Prhwnd, 'hwnd', 0, 'str', 0,"dword",255)
_WinAPI_CloseHandle($_Prhwnd)
Return $_Return
EndFunc
页:
[1]