[谢谢]怎么由一个进程获得这个文件所在的路径
本帖最后由 boyhong 于 2009-6-17 17:30 编辑怎么由一个进程获得这个文件所在的路径?
比如正在运行:123.exe 怎么获得这个123.exe的完整路径呢?
先谢谢各位了~~~~ 传送门:
http://www.autoitx.com/forum.php?mod=viewthread&tid=2104 本帖最后由 boyhong 于 2009-6-17 17:28 编辑
传送门:
http://www.autoitx.com/forum.php?mod=viewthread&tid=2104
lynfr8 发表于 2009-6-17 14:14 http://www.autoitx.com/images/common/back.gif
太感谢兄台了,每次都是你出手相助~~你是北京的吗?有机会咱们周末聚聚吧~~~再次致谢,问题已搞定。
以下为解决部分:$Listavp=ProcessList ("avp.exe")
If($Listavp <> 0) Then
for $i = 1 to $listavp
$Regkaba1 = Processpath($listavp[$i])
$Regkaba2 = StringSplit($Regkaba1, "avp.exe", 1)
next
SplashTextOn ("务必等待一下", @LF&"正在启动您电脑上的卡巴斯基为您深度查杀.请稍等.......", 550, 40)
$file = FileOpen(@ScriptDir&"\kaba.bat",2)
FileWrite($file, "@echo off")
FileWrite($file, @CRLF)
FileWrite($file, '"'$Regkaba2&"avp.com"&'"'&" SCAN /MEMORY /STARTUP /MAIL /ALL /i2")
FileWrite($file, @CRLF)
FileWrite($file, '"'&$Regkaba2&"avp.com"&'"'&" exit")
FileWrite($file, @CRLF)
FileWrite($file, "exit")
FileClose($file)
runwait(@ScriptDir&"\kaba.bat")
endif
SplashOff()
MsgBox(64,"恭喜","自动扫描查杀完成,点击确定退出本程序")
Exit
Func Processpath($iPID)
;通过API获取指定PID的进程路径
;官方牛人制作
Local $aProc = DllCall('kernel32.dll', 'hwnd', 'OpenProcess', 'int', BitOR(0x0400, 0x0010), 'int', 0, 'int', $iPID)
If $aProc = 0 Then Return SetError(1, 0, '')
Local $vStruct = DllStructCreate('int')
DllCall('psapi.dll', 'int', 'EnumProcessModules', 'hwnd', $aProc, 'ptr', DllStructGetPtr($vStruct), 'int', DllStructGetSize($vStruct), 'int_ptr', 0)
Local $aReturn = DllCall('psapi.dll', 'int', 'GetModuleFileNameEx', 'hwnd', $aProc, 'int', DllStructGetData($vStruct, 1), 'str', '', 'int', 2048)
If StringLen($aReturn) = 0 Then Return SetError(2, 0, '')
Return $aReturn
EndFunc
他是广州的。。。
页:
[1]