找回密码
 加入
搜索
查看: 5594|回复: 11

[系统综合] 求助我做了一个按键循环AU3,如何制定退出机制。

 火.. [复制链接]
发表于 2010-7-20 21:33:54 | 显示全部楼层 |阅读模式
程序基本上是依据一个ini中的数据,来循环执行一个操作第三方程序的按键模拟AU3。但是现在的问题是如何让用户随时退出这个循环按键?

我的想法就是不能让这个循环中途中断,但是如何在循环中按几个按键或者组合键之类的就在下一次循环开始时结束这个循环?
发表于 2010-7-20 23:08:26 | 显示全部楼层
理解能力差,不明白楼主的意思。
发表于 2010-7-20 23:37:05 | 显示全部楼层
注册快捷键
 楼主| 发表于 2010-7-27 09:06:01 | 显示全部楼层
回复 3# republican

请问有没有例子?来个连接~~
 楼主| 发表于 2010-7-27 09:08:06 | 显示全部楼层
回复 2# tryhi

这样,再简单点说就是一个循环.如何让循环结束.是结束不是忽然中断.那就是让这个循环到一次循环完成后在中断.
发表于 2010-7-27 09:32:19 | 显示全部楼层
ExitLoop ;退出循环
ContinueLoop ;跳过循环

评分

参与人数 1威望 +2 收起 理由
afan + 2

查看全部评分

发表于 2010-7-27 12:00:32 | 显示全部楼层
帮助文件中,HotKeySet里有一个例子
; Press Esc to terminate script, Pause/Break to "pause"

Global $Paused
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")
HotKeySet("+!d", "ShowMessage")  ;Shift-Alt-d

;;;; Body of program would go here ;;;;
While 1
        Sleep(100)
WEnd
;;;;;;;;

Func TogglePause()
        $Paused = NOT $Paused
        While $Paused
                sleep(100)
                ToolTip('Script is "Paused"',0,0)
        WEnd
        ToolTip("")
EndFunc

Func Terminate()
        Exit 0
EndFunc

Func ShowMessage()
        MsgBox(4096,"","This is a message.")
EndFunc
发表于 2010-7-27 15:26:32 | 显示全部楼层
回复 1# ac5474012
二重循环可解决
HotKeySet("{ESC}", "Terminate");定义退出热键
Local $n;定义退出标志
While 1
        For $i = 1 To 100;循环代码
                ToolTip($i)
                Sleep(100)
        Next;完成一个循环
        If $n = 1 Then ExitLoop;判断退出标志
WEnd

Func Terminate()
        $n = 1;定义退出标志
EndFunc   ;==>Terminate
发表于 2010-7-29 22:12:25 | 显示全部楼层
貌似用hotkey比较容易实现吧
发表于 2010-7-29 22:29:47 | 显示全部楼层
学习了,收藏下
发表于 2010-7-30 10:42:37 | 显示全部楼层
定义热键应该可以解决的。
发表于 2010-7-30 13:09:08 | 显示全部楼层
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate("CTRL + Q 本次循环结束后退出", 330, 260, -1, -1)
$Label1 = GUICtrlCreateLabel("9", 1, 1, 120, 240)
GUICtrlSetFont(-1, 200, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)


dim $t = 0
HotKeySet("^q", "quit")   ;;CTRL + Q 本次循环结束后退出
$s = 9
GUISetOnEvent($GUI_EVENT_CLOSE, "quitt")
Opt("GUIOnEventMode", 1)
While 1
sleep(1000)
GUICtrlSetData($Label1,$s - 1)
$s = $s - 1
if $s = 0 then
if $t = 1 then quitt()
$s = 10
endif
WEnd


func quit()
$t = 1
endfunc

func quitt()
exit
endfunc
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-20 04:42 , Processed in 0.101075 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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