找回密码
 加入
搜索
查看: 1078|回复: 7

[AU3基础] 【已解决】函数体中如果检测不到某进程,如何让脚本继续循环执行?

[复制链接]
发表于 2021-10-19 21:40:15 | 显示全部楼层 |阅读模式
本帖最后由 smooth 于 2021-10-20 08:19 编辑


while 1
    sleep(10)
    _A()
Wend
func _A()
    If 时间=1 then
        _B()
    elseif 时间=2 then
        _B()
    Endif
Endfunc

Func _B()
    If ProcessExists('qq.exe') Then
        do something
    else
        Msgbox()
        未知代码
    Endif
EndFunc    

问题:当时间=1时,开始执行_B(),然后检测不到qq.exe,弹出Msgbox(),手工点击确定后,然后登陆QQ。之后当时间=2时,怎么让脚本继续执行_B()呢?

发表于 2021-10-19 22:00:34 | 显示全部楼层
本帖最后由 zghwelcome 于 2021-10-19 22:01 编辑


While 1
        Sleep(10)
        _A()
WEnd
Func _A()
        If * * * Then
                _B()
        EndIf
EndFunc   ;==>_A

Func _B()
        While 1
                If ProcessExists('qq.exe') Then
                        Do something
                        Return
                Else
                        MsgBox()
                        ;这一行,怎么写,才能让脚本继续执行,永不退出呢?
                EndIf
        WEnd
EndFunc   

是不是这样
 楼主| 发表于 2021-10-19 22:09:04 | 显示全部楼层

我修改了一下,麻烦您看一下,不好意思,一开始意思没表述清楚。
发表于 2021-10-19 22:18:12 | 显示全部楼层

While 1
        Sleep(10)
        _A()
WEnd
Func _A()
        Local $count = 0
        While 1
                If 时间 = 1 Or 时间 = 2 Then
                        $count += 1
                        _B()
                EndIf
                If $count = 2 Then Return
                Sleep(x秒)
        WEnd
EndFunc   ;==>_A

Func _B()
        If ProcessExists('qq.exe') Then
                ;do something
        Else
                MsgBox()
                ;未知代码
        EndIf
EndFunc   ;==>_B

估计没有理解对你的意思
 楼主| 发表于 2021-10-19 22:26:38 | 显示全部楼层
zghwelcome 发表于 2021-10-19 22:18
估计没有理解对你的意思

我想实现的效果就是:比如到了8点,脚本检测到了时间是8点,然后开始执行,但是由于此时没有登录QQ,然后弹出一个提示框,之后就登录QQ,然后到了9点,脚本检测到了时间是9点,再次检测QQ,然后检测到,就执行主程序。

我现在存在的问题是,弹出来提示框后,我登录了QQ,时间到了9点,也不再执行了。
发表于 2021-10-19 22:28:47 | 显示全部楼层
msgbox 弹窗不关闭的话就中断了, 弹窗你可以用另外一个进程弹出来
 楼主| 发表于 2021-10-19 22:41:04 | 显示全部楼层
zghwelcome 发表于 2021-10-19 22:28
msgbox 弹窗不关闭的话就中断了, 弹窗你可以用另外一个进程弹出来

我刚才试过了,和msgbox弹窗没关系,我把
            Else

                        MsgBox()
这两句去掉之后,也不行,只要在第一个设置的检测时间到达之前,进程不存在,后面再检测到,程序也不执行了。
 楼主| 发表于 2021-10-20 08:18:57 | 显示全部楼层
问题解决了,原因不在于else msgbox的出现导致脚本中断,而是在于我设置的逻辑判断开关上,碰到第一个时间,不管进程是否存在,都把 $bpd的值改为了True。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-20 16:43 , Processed in 0.071317 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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