已解决 通过AU3 怎么实现检测软件的运行状态
本帖最后由 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
但是现在如果一个软件一直在运行,突然不运行,或者变成卡死的时候 这种情况可不可以通过脚本实现出现相关的提示信息 。
可以检测 软件的关闭,无响应状态, 如果软件未连接,或者“断网”等需要用其他的程序
_WinAPI_SendMessageTimeout
本来是可以获取这个状态的,只不过,有一些程序,好像状态不会有,直接就死的,鼠标到了哪个界面上后就是一个圈 ,界面就是灰色一样,但是在进程中,也只有内存有少少的增加,CPU使用率也没有增加多少,不好判断呢。要看大神们了。 ttmv2019sx 发表于 2020-9-16 08:22
本来是可以获取这个状态的,只不过,有一些程序,好像状态不会有,直接就死的,鼠标到了哪个界面上后就是一 ...
嗯嗯,是的,所以想咨询一下大神们,能不能实现这个功能 itzyx 发表于 2020-9-16 09:42
嗯嗯,是的,所以想咨询一下大神们,能不能实现这个功能
有個想法你可以測試看看
移動 目標窗口位置
如果可以移動就是正常 移動不了就是無回應 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 10:47
还有这个
_WinAPI_IsHungAppWindow
_WinAPI_IsHungAppWindow 也可以,只是经测试 貌似比 _WinAPI_SendMessageTimeout 检出慢几秒~
{:1_582:} afan 发表于 2020-9-16 10:32
_WinAPI_SendMessageTimeout
好的,谢谢A大, 哈哈 每次看到A大回复,就感觉问题差不多解决了 kk_lee69 发表于 2020-9-16 10:46
有個想法你可以測試看看
移動 目標窗口位置
行,可以试试, 但是这个应该 不能一直监测软件的运行状态吧 绿色风 发表于 2020-9-16 10:47
还有这个
_WinAPI_IsHungAppWindow
感谢 各位大佬 {:1_229:} itzyx 发表于 2020-9-16 11:58
好的,谢谢A大, 哈哈 每次看到A大回复,就感觉问题差不多解决了
这些问题很多都可以在“函数询捕”里面找到答案。比如输入“响应”即可(更多的搜索结果需要2.0以上版本)。 afan 发表于 2020-9-16 12:30
这些问题很多都可以在“函数询捕”里面找到答案。比如输入“响应”即可(更多的搜索结果需要2.0以上版本) ...
嗯嗯,我已经下载了A大你的 函数询捕,还有中文AU3, 但是帮助文档是英文的,有些个别意思我不太能理解, 就比如这个
_WinAPI_SendMessageTimeout, 没有实例参考,我自己摸索还要半天 itzyx 发表于 2020-9-16 14:35
嗯嗯,我已经下载了A大你的 函数询捕,还有中文AU3, 但是帮助文档是英文的,有些个别意思我不太能理解, ...
这个简单,我给你写个例子 afan 发表于 2020-9-16 14:37
这个简单,我给你写个例子
{:1_269:}谢谢A大,太体贴了, 新手福音 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
页:
[1]
2