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

怎么利用系统托盘的“暂停”菜单实现暂停功能?

[复制链接]
发表于 2009-1-6 00:27:37 | 显示全部楼层 |阅读模式
我编了一个程序托盘的“暂停”和“退出”菜单,退出菜单的退出好用,但是“暂停”菜单的暂停功能进入无限循环,不能停止暂停,一直while...wend下去了。烦请高手指点一下问题出在哪?
代码如下:
HotKeySet("{F11}", "ex") ;退出热键为F11
Opt("TrayIconDebug", 1)
Opt("GUICoordMode", 1)
Opt("GUIOnEventMode", 1)
Opt("MouseCoordMode", 1)
Opt('traymenumode', 1)
Opt('trayoneventmode',2)
#Include <Constants.au3>

$tz3 = TrayCreateItem('暂停')
TrayCreateItem('')
$tz1 = TrayCreateItem('退出')
TraySetState()
TrayItemSetOnEvent($tz1, 'ex')
trayitemsetonevent($tz3,'zt')

while 1
        sleep(1000)
msgbox(0,'','主程序')
WEnd

Func zt()
        $fc1=TrayItemgetState($tz3)
        If $fc1=68 Then        TrayItemSetstate($tz3,65)
                while 1
                        sleep(500)
                        $fc1=trayitemgetstate($tz3)
                        if $fc1=68 then ExitLoop
                WEnd
EndFunc

func ex()
        Exit
EndFunc

[ 本帖最后由 喜马拉雅河 于 2009-1-6 15:38 编辑 ]
 楼主| 发表于 2009-1-6 00:32:32 | 显示全部楼层
怎么我的代码跟别人的显示不一样?别人的贴子里代码是有颜色的,我的没有?

上面的代码在调试时显示,总是处于下面这个循环中.   
while 1
                        sleep(500)
                        $fc1=trayitemgetstate($tz3)
                        if $fc1=68 then ExitLoop
WEnd

应当我再次单击“循环”菜单去掉“钩”时,退出调用的ZT()函数而回到主程序啊,但实际上却没回到主程序,怎么回事哪?
 楼主| 发表于 2009-1-6 10:18:43 | 显示全部楼层
自已顶一下吧
发表于 2009-1-6 10:22:36 | 显示全部楼层
代码不是完整的?
 楼主| 发表于 2009-1-6 10:42:14 | 显示全部楼层
原帖由 顽固不化 于 2009-1-6 10:22 发表
代码不是完整的?

抱谦,我已经改了,这回完整了。
 楼主| 发表于 2009-1-6 11:26:01 | 显示全部楼层
自己再顶一下,怎么这个暂停的功能就实现不了吗?
发表于 2009-1-6 13:10:18 | 显示全部楼层

HotKeySet("{F11}", "ex") ;退出热键为F11
Opt('traymenumode', 1)
Opt('trayoneventmode',1)
$pause = 0
$tz3 = TrayCreateItem('暂停')
TrayCreateItem('')
$tz1 = TrayCreateItem('退出')
TraySetState()
TrayItemSetOnEvent($tz1, 'ex')
trayitemsetonevent($tz3,'zt')
AdlibEnable('pause', 100)

while 1
        sleep(1000)
        msgbox(0,'','主程序', 1)
WEnd

Func zt()
        $pause = Not $pause
        If $pause Then
                TrayItemSetstate($tz3,65)
        Else
                TrayItemSetstate($tz3,68)
        EndIf
EndFunc

func ex()
        Exit
EndFunc

Func pause()
        While $pause
                Sleep(100)
        WEnd
EndFunc

评分

参与人数 1金钱 +5 收起 理由
喜马拉雅河 + 5 谢谢狮子了

查看全部评分

 楼主| 发表于 2009-1-6 14:35:29 | 显示全部楼层
非常感谢狮子了。

看了你的帮助,我感觉我的那段代码可能是错在ZT()函数里不应该放循环时间的命令
发表于 2010-3-4 21:14:42 | 显示全部楼层
学习了。。。。。。。。。。。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-7-3 07:42 , Processed in 0.076860 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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