rain6867 发表于 2009-1-3 10:23:08

如何终止脚本执行但不退出窗口

用脚本创建了一个窗体上面有两个按钮一个是运行按钮一个是停止按钮,按运行按钮执行一段代码,按停止按钮,停止执行运行按钮的代码返回窗体,但不退出窗体

liongodmien 发表于 2009-1-3 10:37:59

到资料区那看一下,有好多这样的例子

rain6867 发表于 2009-1-3 11:01:38

没有找到啊帮帮忙

ynygu 发表于 2009-1-3 12:29:02

停止的代码如下应该可以做到

Global $Paused

Func TogglePause()
    $Paused = NOT $Paused
    While $Paused
      sleep(100)
      ToolTip('脚本已被“暂停”',0,0)
    WEnd
    ToolTip("")
EndFunc

rain6867 发表于 2009-1-4 08:31:58

我是想退出上面的循环,但循环太快,不接受我的按键信息

大绯狼 发表于 2009-1-4 09:40:35

请使用事件模式

bdrdc 发表于 2009-12-6 10:03:07

这个是Autoit的设计问题,基本没有有效地解决办法。

vivier001 发表于 2009-12-6 11:13:02

帮顶:face (29):

xwt620 发表于 2009-12-6 23:46:08

建议你把代码发上来看看
有些函数在执行的时候是无法停止的

netegg 发表于 2009-12-31 05:09:05

本帖最后由 netegg 于 2009-12-31 05:13 编辑

udf区挂起进程
http://www.autoitx.com/forum.php?mod=viewthread&tid=7374&extra=page%3D3

sanmoking 发表于 2009-12-31 18:41:50

我一般使用事件模式,设置一个变量当标志,标志=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

wyd301 发表于 2010-1-1 17:17:33

事件模式应该可以解决的!

lsf1012 发表于 2010-1-29 19:46:34

路过看看

figons 发表于 2010-1-29 23:12:19

EVENT模式,再利用while 变量的方式可解,楼主可在论坛搜一下。
页: [1]
查看完整版本: 如何终止脚本执行但不退出窗口