找回密码
 加入
搜索
查看: 3928|回复: 8

[GUI管理] 如何在执行脚本过程中点击按钮中止脚本执行?用消息模式和事件模式貌似都不行?

  [复制链接]
发表于 2012-7-2 12:43:12 | 显示全部楼层 |阅读模式
本帖最后由 thackit 于 2012-7-2 15:24 编辑

想在执行脚本的同时,点击一个按钮来中止脚本执行。
我分别试验了消息模式和事件模式两种方案,但是当点击“开始听课”按钮脚本正在执行时,想通过点击“停止听课”按钮来中止脚本都没有反应。
代码如下:
消息模式:
GUICreate($name, 220, 750)
$Button1 = GUICtrlCreateButton("开始听课", 25, 640, 100, 50)
$Button5 = GUICtrlCreateButton("停止听课", 135, 650, 65, 30)
GUISetState()

While 1
    $msg = GUIGetMsg()
    Select
                Case $msg = $GUI_EVENT_CLOSE
                        ExitLoop
                Case $msg = $Button1
                        autolesson1()
                Case $msg = $Button5
                        If MsgBox( 4097, "提示", "确定停止听课?") Then Exit
        EndSelect
WEnd
事件模式:
GUICreate($name, 220, 750)
$Button1 = GUICtrlCreateButton("开始听课", 25, 640, 100, 50)
$Button5 = GUICtrlCreateButton("停止听课", 135, 650, 65, 30)
GUISetState()

Opt("GUIOnEventMode", 1)

GUISetOnEvent($GUI_EVENT_CLOSE, "gui")
GUICtrlSetOnEvent($Button1, "gui")
GUICtrlSetOnEvent($Button5, "killself")

While 1
    ;;;
WEnd

Exit

Func gui()
    Switch @GUI_CtrlId
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            autolesson1()
        EndSwitch
EndFunc

Func killself()
        If MsgBox( 4097, "提示", "确定停止听课?") Then Exit
EndFunc
发表于 2012-7-2 13:02:33 | 显示全部楼层
本帖最后由 冷玉公子 于 2012-7-2 13:04 编辑

细的就不多说了,给你两个方法。
第一:在函数里加上 GUIGetCursorInfo 来检测,判断鼠标按下和控件ID.
第二:用多进程的方式,例如:
#include <ChildProc.au3>
_ChildProc_Start("函数名")
也就说用另外一个进程来执行这个东西,要停止的时候就是结束这个进程,或者发消息给这个进程。
发表于 2012-7-2 13:04:58 | 显示全部楼层
是两个按钮都没反应吗?究竟是没反应还是出错啊?代码不全,且比较乱呢。GUICtrlSetOnEvent()怎么用在消息模式下呢?
 楼主| 发表于 2012-7-2 13:27:35 | 显示全部楼层
回复 3# shqf
谢谢楼上两位回复。

是当点击“开始听课”按钮后,脚本开始执行还没结束,这时要点击“停止听课”按钮中止脚本执行,此时点击按钮没反应即不能停止听课。
 楼主| 发表于 2012-7-2 15:21:22 | 显示全部楼层
回复 2# 冷玉公子


实在比较菜,请教稍微详细的方法?
第一种方法要怎么加入那个检测?
第二种方法,我找到ChildProc.au3,但是虽然启动了多进程,但是还是不能在点击按钮时执行。
发表于 2012-7-2 15:27:56 | 显示全部楼层
发表于 2012-7-2 15:34:41 | 显示全部楼层
用au3自带的默认trayMenu来不就行了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-7-2 16:37:19 | 显示全部楼层
HotKeySet("!{F2}","haha")
发表于 2012-7-2 20:50:11 | 显示全部楼层
顶楼上的答案
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-14 15:03 , Processed in 0.083896 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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