找回密码
 加入
搜索
查看: 1542|回复: 2

[系统综合] AU3 如何判断应用程序没有运行但进程里面包含的这种情况

[复制链接]
发表于 2013-10-29 20:14:07 | 显示全部楼层 |阅读模式
RT, AU3 如何判断没有运行的程序但系统进程里面有这个程序这种情况了,用 Not Run("") AND ProcessExists("") 时候最小化时候也会被判断为木有运行了,菜鸟求指导啊~~~
发表于 2013-11-5 14:01:25 | 显示全部楼层
检测进程并返回路径,再对比你要检测的没有运行的文件的路径,不一致就是没运行啊~!
发表于 2013-11-5 14:13:11 | 显示全部楼层
和你的文件的路径对比就行了
$PID=ProcessExists ( "hh.exe" ) 
MsgBox(64, "提示", "进程路径是:" & Procespath($PID))

Func Procespath($iPID)
        ;通过API获取指定PID的进程路径
        ;官方牛人制作
        Local $aProc = DllCall('kernel32.dll', 'hwnd', 'OpenProcess', 'int', BitOR(0x0400, 0x0010), 'int', 0, 'int', $iPID)
        If $aProc[0] = 0 Then Return SetError(1, 0, '')
        Local $vStruct = DllStructCreate('int[1024]')
        DllCall('psapi.dll', 'int', 'EnumProcessModules', 'hwnd', $aProc[0], 'ptr', DllStructGetPtr($vStruct), 'int', DllStructGetSize($vStruct), 'int_ptr', 0)
        Local $aReturn = DllCall('psapi.dll', 'int', 'GetModuleFileNameEx', 'hwnd', $aProc[0], 'int', DllStructGetData($vStruct, 1), 'str', '', 'int', 2048)
        If StringLen($aReturn[3]) = 0 Then Return SetError(2, 0, '')
        Return $aReturn[3]
EndFunc   ;==>Processpath
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-16 16:47 , Processed in 0.086888 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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