【已解决】函数体中如果检测不到某进程,如何让脚本继续循环执行?
本帖最后由 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()呢?
本帖最后由 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
是不是这样
zghwelcome 发表于 2021-10-19 22:00
是不是这样
我修改了一下,麻烦您看一下,不好意思,一开始意思没表述清楚。
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
估计没有理解对你的意思
zghwelcome 发表于 2021-10-19 22:18
估计没有理解对你的意思
我想实现的效果就是:比如到了8点,脚本检测到了时间是8点,然后开始执行,但是由于此时没有登录QQ,然后弹出一个提示框,之后就登录QQ,然后到了9点,脚本检测到了时间是9点,再次检测QQ,然后检测到,就执行主程序。
我现在存在的问题是,弹出来提示框后,我登录了QQ,时间到了9点,也不再执行了。 msgbox 弹窗不关闭的话就中断了, 弹窗你可以用另外一个进程弹出来 zghwelcome 发表于 2021-10-19 22:28
msgbox 弹窗不关闭的话就中断了, 弹窗你可以用另外一个进程弹出来
我刚才试过了,和msgbox弹窗没关系,我把
Else
MsgBox()
这两句去掉之后,也不行,只要在第一个设置的检测时间到达之前,进程不存在,后面再检测到,程序也不执行了。
问题解决了,原因不在于else msgbox的出现导致脚本中断,而是在于我设置的逻辑判断开关上,碰到第一个时间,不管进程是否存在,都把 $bpd的值改为了True。
页:
[1]