找回密码
 加入
搜索
查看: 5703|回复: 17

脚本的【暂停&继续】 功能如何实现

[复制链接]
发表于 2008-5-12 13:21:36 | 显示全部楼层 |阅读模式
如果不添加托盘菜单,默认是有这个功能的。现在想以
GUI按钮或
托盘菜单或
热键
的形式实现脚本的【暂停&继续】功能。请问如何实现呢



后附:结果不是我要的结果

[ 本帖最后由 jiataifeng 于 2008-5-19 00:34 编辑 ]
 楼主| 发表于 2008-5-13 09:13:56 | 显示全部楼层
下去了,再问。
请高手指点。
发表于 2008-5-13 11:08:43 | 显示全部楼层
好象帮助里面就有,定义全局变量,再来个 变量=NOT 变量
发表于 2008-5-14 09:06:21 | 显示全部楼层
请查看帮助文档里面的: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

 楼主| 发表于 2008-5-14 10:42:14 | 显示全部楼层
难道就是这样?

此时的暂停和没暂停好像区别不大吧?(在暂停过程中仍然可以处理事件)

这种意义的“暂停”有“恢复”的意义吗

直说了吧。默认的暂停怎么做到的呢。那个就很好啊
发表于 2008-5-14 11:17:14 | 显示全部楼层
自定义~~~~
 楼主| 发表于 2008-5-16 19:36:52 | 显示全部楼层
问题依然没有解决。
你那个自定函数如果是个死循环,那么如何在死循环过程中暂停&继续呢?
 楼主| 发表于 2008-5-16 20:40:03 | 显示全部楼层
呵呵,高人,能否实现一下呢。
毕竟对于脚本技术来说,暂停与恢复是不可避免的话题啊。
发表于 2008-5-16 20:55:37 | 显示全部楼层
Sleep是很好实现的方法。
冻结线程的话不难,问题是,你怎么恢复?线程已经冻结了啊!这就要搞多线程/多进程了,麻烦死了,不如直接sleep算了。
 楼主| 发表于 2008-5-16 21:19:54 | 显示全部楼层
sleep也可以啊,在sleep过程中能不能些其他的事情呢?比如判断是否应该被唤醒。
单纯sleep特定的几秒钟意义不是很大。而且程序代码不可移植。
发表于 2008-5-16 21:28:28 | 显示全部楼层
难道5楼的代码不能解决你的问题吗!?请仔细研究一下.
解决以后别忘了改标题;给提供帮助的朋友评分
 楼主| 发表于 2008-5-16 21:38:08 | 显示全部楼层
难道5楼的代码不是真正的暂停

在暂停的时候 按  Shift-Alt-d  照应有反应哪。
呵呵,不过还是谢谢了!
发表于 2008-5-16 21:45:32 | 显示全部楼层
13楼说得很对,能解决问题就好了。再次强调,Sleep(DelayExecution)是比较好实现的,而系统栏暂停使用的是等待用户请求(WrUserRequest)+Sleep……那不如直接Sleep!
发表于 2008-5-16 21:56:46 | 显示全部楼层
原帖由 jiataifeng 于 2008-5-16 21:38 发表
难道5楼的代码不是真正的暂停

在暂停的时候 按  Shift-Alt-d  照应有反应哪。
呵呵,不过还是谢谢了!

除了hotkey事件,别的都不会响应的,话说回来,如果绝对的暂停了,你又如何"继续"呢?
发表于 2008-5-16 22:00:08 | 显示全部楼层
火星地说一句……打开Process Explorer,恢复Autoit的线程……很正确吧……别拿石头咂我
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2025-1-12 13:38 , Processed in 0.165713 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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