找回密码
 加入
搜索
查看: 2155|回复: 4

[GUI管理] 求助怎么可以按下按钮取消正在执行的循环?[已经解决谢谢3M]

[复制链接]
发表于 2010-9-8 00:50:12 | 显示全部楼层 |阅读模式
本帖最后由 lsq726 于 2010-9-8 19:39 编辑

如下面的这个代码。
按下 开始任务 按钮 进行一个循环
怎么可以按下 取消任务 中断循环
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=C:\Documents and Settings\Administrator\My Documents\aaa.kxf
$Form1 = GUICreate("Form1", 438, 211, 192, 114)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "Form1Minimize")
GUISetOnEvent($GUI_EVENT_MAXIMIZE, "Form1Maximize")
GUISetOnEvent($GUI_EVENT_RESTORE, "Form1Restore")
$Label1 = GUICtrlCreateLabel("", 16, 36, 164, 28)
GUICtrlSetOnEvent(-1, "Label1Click")
$Button1 = GUICtrlCreateButton("开始任务", 216, 32, 75, 25)
GUICtrlSetOnEvent(-1, "Button1Click")
$Button2 = GUICtrlCreateButton("取消任务", 216, 80, 75, 25)
GUICtrlSetOnEvent(-1, "Button2Click")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        Sleep(100)
WEnd

Func Button1Click()
        For $t=20 To 0 Step -1
                
        
        Sleep(1000)
        GUICtrlSetData($Label1, $t&"秒后重新启动计算机")

        If $t=0 Then
                Run(@ComSpec & " /c " & 'shutdown -i', "", @SW_HIDE)
        EndIf
        
Next


EndFunc
Func Button2Click()
        

EndFunc
Func Form1Close()

EndFunc
Func Form1Maximize()

EndFunc
Func Form1Minimize()

EndFunc
Func Form1Restore()

EndFunc
Func Label1Click()

EndFunc

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-9-8 10:25:38 | 显示全部楼层
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=C:\Documents and Settings\Administrator\My Documents\aaa.kxf
$Form1 = GUICreate("Form1", 438, 211, 192, 114)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "Form1Minimize")
GUISetOnEvent($GUI_EVENT_MAXIMIZE, "Form1Maximize")
GUISetOnEvent($GUI_EVENT_RESTORE, "Form1Restore")
$Label1 = GUICtrlCreateLabel("", 16, 36, 164, 28)
GUICtrlSetOnEvent(-1, "Label1Click")
$Button1 = GUICtrlCreateButton("开始任务", 216, 32, 75, 25)
GUICtrlSetOnEvent(-1, "Button1Click")
$Button2 = GUICtrlCreateButton("取消任务", 216, 80, 75, 25)
GUICtrlSetOnEvent(-1, "Button2Click")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Global $t

While 1
        Sleep(100)
WEnd

Func Button1Click()
        $t=20
        AdlibRegister("set",1000)
EndFunc   ;==>Button1Click

Func Button2Click()
        AdlibUnRegister("set")
        MsgBox(4096,"","用户取消")
EndFunc   ;==>Button2Click

Func set()
        GUICtrlSetData($Label1, $t & "秒后重新启动计算机")
        If $t < 1 Then
                Run(@ComSpec & " /c " & 'shutdown -i', "", @SW_HIDE)
        EndIf        
        $t-=1
EndFunc

Func Form1Close()

EndFunc   ;==>Form1Close
Func Form1Maximize()

EndFunc   ;==>Form1Maximize
Func Form1Minimize()

EndFunc   ;==>Form1Minimize
Func Form1Restore()

EndFunc   ;==>Form1Restore
Func Label1Click()

EndFunc   ;==>Label1Click

评分

参与人数 4金钱 +40 贡献 +6 收起 理由
lsq726 + 10 感谢3MILE 同时也感谢蛋蛋。他告诉我用adl ...
小菜kks + 6
afan + 20
lixiaolong + 10

查看全部评分

发表于 2010-9-8 11:34:39 | 显示全部楼层
顶你。。。。。
发表于 2010-9-8 14:53:08 | 显示全部楼层
哈哈,学习了,需要这个
发表于 2010-9-9 10:51:00 | 显示全部楼层
很有学习价值
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-6-3 01:21 , Processed in 0.087940 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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