找回密码
 加入
搜索
查看: 7409|回复: 19

[AU3基础] 已解决 通过AU3 怎么实现检测软件的运行状态

[复制链接]
发表于 2020-9-15 23:58:07 | 显示全部楼层 |阅读模式
本帖最后由 itzyx 于 2020-9-16 20:13 编辑

想请教一下各位大佬,AU3能检测 电脑软件的运行状态嘛? 希望 能给点这方面的相关提示; 就比如 一个QQ软件,能不能通过脚本实现,判断其运行状态:  是正在运行,还是无响应(软件卡死的那种) 我只了解到 ProcessExists  检查指定进程是否存在.
比如:
#include <MsgBoxConstants.au3>

If ProcessExists("QQ.exe") Then ; Check if the QQ process is running.
    MsgBox($MB_SYSTEMMODAL, "", "QQ is running")
Else
    MsgBox($MB_SYSTEMMODAL, "", "QQ is not running")
EndIf
但是现在  如果一个软件一直在运行,突然不运行,或者变成卡死的时候   这种情况可不可以通过脚本  实现出现相关的提示信息 。


可以检测 软件的关闭,无响应状态,   如果软件未连接,或者“断网”等  需要用其他的程序
发表于 2020-9-16 10:32:45 | 显示全部楼层
_WinAPI_SendMessageTimeout
发表于 2020-9-16 08:22:02 | 显示全部楼层
本来是可以获取这个状态的,只不过,有一些程序,好像状态不会有,直接就死的,鼠标到了哪个界面上后就是一个圈 ,界面就是灰色一样,但是在进程中,也只有内存有少少的增加,CPU使用率也没有增加多少,不好判断呢。要看大神们了。
 楼主| 发表于 2020-9-16 09:42:15 | 显示全部楼层
ttmv2019sx 发表于 2020-9-16 08:22
本来是可以获取这个状态的,只不过,有一些程序,好像状态不会有,直接就死的,鼠标到了哪个界面上后就是一 ...

嗯嗯,是的,所以想咨询一下大神们,能不能实现这个功能
发表于 2020-9-16 10:46:47 | 显示全部楼层
itzyx 发表于 2020-9-16 09:42
嗯嗯,是的,所以想咨询一下大神们,能不能实现这个功能

有個想法你可以測試看看

移動 目標窗口位置

如果可以移動就是正常   移動不了就是無回應
发表于 2020-9-16 10:47:26 | 显示全部楼层
https://www.autoitx.com/forum.php?mod=redirect&goto=findpost&ptid=72203&pid=742299&fromuid=7652192
_WinAPI_SendMessageTimeout  正点


还有这个

_WinAPI_IsHungAppWindow

https://baike.baidu.com/item/IsHungAppWindow/13333973?fr=aladdin
发表于 2020-9-16 11:22:26 | 显示全部楼层
绿色风 发表于 2020-9-16 10:47
还有这个

_WinAPI_IsHungAppWindow

_WinAPI_IsHungAppWindow 也可以,只是经测试 貌似比 _WinAPI_SendMessageTimeout 检出慢几秒~
 楼主| 发表于 2020-9-16 11:58:56 | 显示全部楼层
afan 发表于 2020-9-16 10:32
_WinAPI_SendMessageTimeout

好的,谢谢A大, 哈哈 每次看到A大回复,就感觉问题差不多解决了
 楼主| 发表于 2020-9-16 11:59:54 | 显示全部楼层
kk_lee69 发表于 2020-9-16 10:46
有個想法你可以測試看看

移動 目標窗口位置

行,可以试试, 但是这个应该 不能一直监测软件的运行状态吧
 楼主| 发表于 2020-9-16 12:00:27 | 显示全部楼层
绿色风 发表于 2020-9-16 10:47
还有这个

_WinAPI_IsHungAppWindow

感谢 各位大佬
发表于 2020-9-16 12:30:29 | 显示全部楼层
itzyx 发表于 2020-9-16 11:58
好的,谢谢A大, 哈哈 每次看到A大回复,就感觉问题差不多解决了

这些问题很多都可以在“函数询捕”里面找到答案。比如输入“响应”即可(更多的搜索结果需要2.0以上版本)。
 楼主| 发表于 2020-9-16 14:35:51 | 显示全部楼层
afan 发表于 2020-9-16 12:30
这些问题很多都可以在“函数询捕”里面找到答案。比如输入“响应”即可(更多的搜索结果需要2.0以上版本) ...

嗯嗯,我已经下载了A大你的 函数询捕,还有中文AU3, 但是帮助文档是英文的,有些个别意思我不太能理解, 就比如这个
_WinAPI_SendMessageTimeout, 没有实例参考,我自己摸索还要半天
发表于 2020-9-16 14:37:33 | 显示全部楼层
itzyx 发表于 2020-9-16 14:35
嗯嗯,我已经下载了A大你的 函数询捕,还有中文AU3, 但是帮助文档是英文的,有些个别意思我不太能理解, ...

这个简单,我给你写个例子
 楼主| 发表于 2020-9-16 14:42:41 | 显示全部楼层
afan 发表于 2020-9-16 14:37
这个简单,我给你写个例子

谢谢A大,太体贴了, 新手福音
发表于 2020-9-16 14:46:01 | 显示全部楼层
itzyx 发表于 2020-9-16 14:42
谢谢A大,太体贴了, 新手福音
#include <WinAPIEx.au3>
Local $hWnd = WinGetHandle('QQ')        ;按需修改需检测的窗口
If Not IsHWnd($hWnd) Then Exit MsgBox(48, '', '获取窗口句柄错误')
While 1
        Sleep(1000)
        _WinAPI_SendMessageTimeout($hWnd, 0)
        If @error Then MsgBox(48, '', '停止响应')        
WEnd
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-23 07:43 , Processed in 0.246152 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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