找回密码
 加入
搜索
查看: 2295|回复: 9

如何用按键停止一个无线循环的脚本?

  [复制链接]
发表于 2009-5-15 17:01:56 | 显示全部楼层 |阅读模式
本帖最后由 twh2000 于 2009-6-3 00:20 编辑

我用AU3写一个无限循环的脚本?
设2个按键
按键1执行无限循环脚本
按键2停止无限循环脚本

按键1执行无限循环脚本没问题
但无法用按键2停止无限循环脚本

请问按键2要用甚么语句来停止无限循环脚本
谢谢
发表于 2009-5-15 17:54:55 | 显示全部楼层
可以把代码发上来看看.
一般是EXITLOOP命令
 楼主| 发表于 2009-5-15 18:24:36 | 显示全部楼层
本帖最后由 twh2000 于 2009-5-15 18:26 编辑

#include <GUIConstants.au3>
Opt("GUIOnEventMode", 1)  ; 切换为 OnEvent 模式
$mainwindow = GUICreate("测试", 600, 400) ; 创建窗口并返回窗口句柄
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked") ; 设置窗口关闭事件
$okbutton = GUICtrlCreateButton("执行", 70, 150, 60)  ;按钮"执行"
GUICtrlSetOnEvent($okbutton, "OKButton")              
$nobutton = GUICtrlCreateButton("暂停", 70, 200, 60)  ;按钮"暂停"
GUICtrlSetOnEvent($nobutton, "NOButton")              
GUISetState(@SW_SHOW)
While 1
  Sleep(10000)  ; 不做任何事
WEnd

Func OKButton()        ;按钮"执行"
   while 1=1
          
        ;无限循环脚本   
          
          
        WEnd                                    
EndFunc

Func NOButton() ;按钮"暂停"
        ;我要如何暂停脚本???

EndFunc

Func CLOSEClicked()
;;;;;;;;;;;;结速程式;;;;;;;;;;;;;;;
  Exit
EndFunc



以上是代码
我要用按键"暂停"停止无限循环
谢谢
发表于 2009-5-16 16:56:09 | 显示全部楼层
请参考HotKeySet函数示例。
将暂停和继续分开成两个键,简单修改代码如下:
; Press Esc to terminate script, Pause/Break to "pause"

Global $Paused
HotKeySet("{F1}", "Pause")
HotKeySet("{F2}", "Continue")
HotKeySet("{ESC}", "Terminate")
HotKeySet("+!d", "ShowMessage") ;Shift-Alt-d

;;;; Body of program would go here ;;;;
While 1
        Sleep(100)
        ToolTip('Script is "Run"', 0, 0)
WEnd
;;;;;;;;

Func Pause()
        $Paused = True
        TogglePause()
EndFunc   ;==>Pause

Func Continue()
        $Paused = False
        TogglePause()
EndFunc   ;==>Continue

Func TogglePause()
        While $Paused
                Sleep(100)
                ToolTip('Script is "Paused"', 0, 0)
        WEnd
;        ToolTip("")
EndFunc   ;==>TogglePause

Func Terminate()
        Exit 0
EndFunc   ;==>Terminate

Func ShowMessage()
        MsgBox(4096, "", "This is a message.")
EndFunc   ;==>ShowMessage
发表于 2009-11-23 10:43:04 | 显示全部楼层
收藏了,有用时好看。
发表于 2009-11-23 16:16:27 | 显示全部楼层
没钱下载了。
发表于 2009-12-23 23:44:23 | 显示全部楼层
HOTKEY的办法是最好的办法!
发表于 2009-12-31 14:55:29 | 显示全部楼层
收藏了,有用时好看。
发表于 2010-10-3 02:36:38 | 显示全部楼层
收藏了,有用时好看。
lgmpds 发表于 2009-12-31 14:55

NO!
windows事件是最好的方法!
http://www.autoitx.com/forum.php ... o=lastpost#lastpost
发表于 2010-10-3 02:36:53 | 显示全部楼层
HOTKEY的办法是最好的办法!
316428696 发表于 2009-12-23 23:44


http://www.autoitx.com/forum.php ... o=lastpost#lastpost
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-3 04:33 , Processed in 0.074032 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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