脚本的【暂停&继续】 功能如何实现
如果不添加托盘菜单,默认是有这个功能的。现在想以GUI按钮或
托盘菜单或
热键
的形式实现脚本的【暂停&继续】功能。请问如何实现呢
后附:结果不是我要的结果
[ 本帖最后由 jiataifeng 于 2008-5-19 00:34 编辑 ] 下去了,再问。
请高手指点。 好象帮助里面就有,定义全局变量,再来个 变量=NOT 变量 请查看帮助文档里面的:HotKeySet 函数
例子:
; 按下 Esc 将终止脚本,按下 Pause/Break 则将“暂停”
Global $Paused
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")
HotKeySet("+!d", "ShowMessage");Shift-Alt-d
;;;; 这里是程序主体 ;;;;
While 1
Sleep(100)
WEnd
;;;;;;;;
Func TogglePause()
$Paused = NOT $Paused
While $Paused
sleep(100)
ToolTip('脚本已被“暂停”',0,0)
WEnd
ToolTip("")
EndFunc
Func Terminate()
Exit 0
EndFunc
Func ShowMessage()
MsgBox(4096,"","这是一个对话框。")
EndFunc
难道就是这样?
此时的暂停和没暂停好像区别不大吧?(在暂停过程中仍然可以处理事件)
这种意义的“暂停”有“恢复”的意义吗
直说了吧。默认的暂停怎么做到的呢。那个就很好啊 自定义~~~~ 问题依然没有解决。
你那个自定函数如果是个死循环,那么如何在死循环过程中暂停&继续呢? 呵呵,高人,能否实现一下呢。
毕竟对于脚本技术来说,暂停与恢复是不可避免的话题啊。 Sleep是很好实现的方法。
冻结线程的话不难,问题是,你怎么恢复?线程已经冻结了啊!这就要搞多线程/多进程了,麻烦死了,不如直接sleep算了。 sleep也可以啊,在sleep过程中能不能些其他的事情呢?比如判断是否应该被唤醒。
单纯sleep特定的几秒钟意义不是很大。而且程序代码不可移植。 难道5楼的代码不能解决你的问题吗!?请仔细研究一下.
解决以后别忘了改标题;给提供帮助的朋友评分 难道5楼的代码不是真正的暂停
在暂停的时候 按Shift-Alt-d照应有反应哪。
呵呵,不过还是谢谢了! 13楼说得很对,能解决问题就好了。再次强调,Sleep(DelayExecution)是比较好实现的,而系统栏暂停使用的是等待用户请求(WrUserRequest)+Sleep……那不如直接Sleep! 原帖由 jiataifeng 于 2008-5-16 21:38 发表 http://www.autoitx.com/images/common/back.gif
难道5楼的代码不是真正的暂停
在暂停的时候 按Shift-Alt-d照应有反应哪。
呵呵,不过还是谢谢了!
除了hotkey事件,别的都不会响应的,话说回来,如果绝对的暂停了,你又如何"继续"呢? 火星地说一句……打开Process Explorer,恢复Autoit的线程……很正确吧……别拿石头咂我:face (35):
页:
[1]
2