ac5474012 发表于 2010-7-20 21:33:54

求助我做了一个按键循环AU3,如何制定退出机制。

程序基本上是依据一个ini中的数据,来循环执行一个操作第三方程序的按键模拟AU3。但是现在的问题是如何让用户随时退出这个循环按键?

我的想法就是不能让这个循环中途中断,但是如何在循环中按几个按键或者组合键之类的就在下一次循环开始时结束这个循环?

tryhi 发表于 2010-7-20 23:08:26

理解能力差,不明白楼主的意思。

republican 发表于 2010-7-20 23:37:05

注册快捷键

ac5474012 发表于 2010-7-27 09:06:01

回复 3# republican

请问有没有例子?来个连接~~

ac5474012 发表于 2010-7-27 09:08:06

回复 2# tryhi

这样,再简单点说就是一个循环.如何让循环结束.是结束不是忽然中断.那就是让这个循环到一次循环完成后在中断.

水木子 发表于 2010-7-27 09:32:19

ExitLoop ;退出循环
ContinueLoop ;跳过循环

Ziya 发表于 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

3mile 发表于 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

today2004 发表于 2010-7-29 22:12:25

貌似用hotkey比较容易实现吧

0633zhou 发表于 2010-7-29 22:29:47

学习了,收藏下

wyd301 发表于 2010-7-30 10:42:37

定义热键应该可以解决的。

xsjtxy 发表于 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
页: [1]
查看完整版本: 求助我做了一个按键循环AU3,如何制定退出机制。