如何终止脚本执行但不退出窗口
用脚本创建了一个窗体上面有两个按钮一个是运行按钮一个是停止按钮,按运行按钮执行一段代码,按停止按钮,停止执行运行按钮的代码返回窗体,但不退出窗体 到资料区那看一下,有好多这样的例子 没有找到啊帮帮忙 停止的代码如下应该可以做到Global $Paused
Func TogglePause()
$Paused = NOT $Paused
While $Paused
sleep(100)
ToolTip('脚本已被“暂停”',0,0)
WEnd
ToolTip("")
EndFunc 我是想退出上面的循环,但循环太快,不接受我的按键信息 请使用事件模式 这个是Autoit的设计问题,基本没有有效地解决办法。 帮顶:face (29): 建议你把代码发上来看看
有些函数在执行的时候是无法停止的 本帖最后由 netegg 于 2009-12-31 05:13 编辑
udf区挂起进程
http://www.autoitx.com/forum.php?mod=viewthread&tid=7374&extra=page%3D3 我一般使用事件模式,设置一个变量当标志,标志=0,就停止,=1就运行。。
而且尽可能的把你的那个循环分成很多很短小的步骤,每个步骤都尽量去验证一下那个标志变量,这样就不会因为循环太长而无法及时停止。。。。。
给个例子好了
HotKeySet("{esc}", "x")
$key = 1
a()
Func a()
Sleep(10)
For $i = 1 To 1000
If $key = 1 Then
ttt($i)
Sleep(30)
Else
ExitLoop
EndIf
Next
a()
EndFunc ;==>a
Func ttt($ttt, $widthy = 0);显示提示工具条,不想每次都数一大堆字符,节省au3文件大小
If $widthy = 0 Then $widthy = @DesktopWidth / 3
SplashTextOn("调试过程", $ttt, $widthy, @DesktopHeight / 20, -1, -1, 33, "", @DesktopHeight / 60)
EndFunc ;==>ttt
Func x()
$key = Abs($key - 1)
ttt("暂停中")
EndFunc ;==>x
这个例子按esc暂停后,再按esc会从头开始数数。。。。
下面给个接着数数的例子:
HotKeySet("{esc}", "x")
$key = 1
$i = 1
a()
Func a()
Sleep(10)
If $key = 1 Then
$i = $i+1
ttt($i)
Sleep(30)
EndIf
a()
EndFunc ;==>a
Func ttt($ttt, $widthy = 0);显示提示工具条,不想每次都数一大堆字符,节省au3文件大小
If $widthy = 0 Then $widthy = @DesktopWidth / 3
SplashTextOn("调试过程", $ttt, $widthy, @DesktopHeight / 20, -1, -1, 33, "", @DesktopHeight / 60)
EndFunc ;==>ttt
Func x()
$key = Abs($key - 1)
ttt("暂停中:"&$i)
EndFunc ;==>x 事件模式应该可以解决的! 路过看看 EVENT模式,再利用while 变量的方式可解,楼主可在论坛搜一下。
页:
[1]