找回密码
 加入
搜索
查看: 1042|回复: 2

新手..看例子有几处不明之处!请高手指点下

[复制链接]
发表于 2009-4-9 10:39:43 | 显示全部楼层 |阅读模式
本帖最后由 chengjinn 于 2009-12-25 21:18 编辑

Global $Paused
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")
HotKeySet("+!d", "ShowMessage")  ;Shift-Alt-d
;一处提问!!,   while 1 为无限循环.为什么脚本进入无限循环!还能检测按键!
;;;; 这里是程序主体 ;;;;
While 1
    Sleep(100)
WEnd
;;;;;;;;
;第二处提问?    为什么按下PUASE键后脚本暂停再次按下脚本又会激活,没有发现在哪里有激活脚本的语句!!!   
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
发表于 2009-4-9 11:10:05 | 显示全部楼层
关于第一个问题:
主循环里面可以有你需要执行的命令,也可以就是简单到只有一句sleep(100),一般来讲,主循环都是一个死循环。
看起来你提供的脚本里省略掉了一部分,还有一段检测窗口消息的命令。检测窗口消息的命令就是用来检测是否有需要执行的命令的,诸如本脚本中的自定义函数(键盘热键)。
关于第二个问题:
重点在于这两句:
$Paused = NOT $Paused
    While $Paused

第一句:提供了单按一个按钮完成1=是、2=非、3=是、4=非......的循环功能,第二句则检测执行是与非的命令。
总的来讲,这个脚本提供的内容不完全,但是这种写法可以实现这样的功能,就是检测键盘热键的点击动作,按一次停止主循环的运行,再按一次启动主循环的运行。
发表于 2009-4-9 14:52:25 | 显示全部楼层
HotKeySet,这是设置一个全局热键。也就是说,不管程序运行到哪一步,不管程序是在前台还是后台运行,只要按下指定键就立即转到相应函数运行,完成后再返回。
HotKeySet("{PAUSE}", "TogglePause") 这一行,指定按下PAUSE键后转到函数TogglePause。查看函数TogglePause可以看到,对$Paused变量执行了一个逻辑非操作,所以做到了双态切换。当$Paused为真时,程序进入一个暂停的死循环,直到$Paused为假时才返回。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-6 07:24 , Processed in 0.070655 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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