新手..看例子有几处不明之处!请高手指点下
本帖最后由 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 关于第一个问题:
主循环里面可以有你需要执行的命令,也可以就是简单到只有一句sleep(100),一般来讲,主循环都是一个死循环。
看起来你提供的脚本里省略掉了一部分,还有一段检测窗口消息的命令。检测窗口消息的命令就是用来检测是否有需要执行的命令的,诸如本脚本中的自定义函数(键盘热键)。
关于第二个问题:
重点在于这两句:
$Paused = NOT $Paused
While $Paused
第一句:提供了单按一个按钮完成1=是、2=非、3=是、4=非......的循环功能,第二句则检测执行是与非的命令。
总的来讲,这个脚本提供的内容不完全,但是这种写法可以实现这样的功能,就是检测键盘热键的点击动作,按一次停止主循环的运行,再按一次启动主循环的运行。 HotKeySet,这是设置一个全局热键。也就是说,不管程序运行到哪一步,不管程序是在前台还是后台运行,只要按下指定键就立即转到相应函数运行,完成后再返回。
HotKeySet("{PAUSE}", "TogglePause") 这一行,指定按下PAUSE键后转到函数TogglePause。查看函数TogglePause可以看到,对$Paused变量执行了一个逻辑非操作,所以做到了双态切换。当$Paused为真时,程序进入一个暂停的死循环,直到$Paused为假时才返回。
页:
[1]