找回密码
 加入
搜索
查看: 2083|回复: 1

系统托盘程序

  [复制链接]
发表于 2008-9-20 16:34:26 | 显示全部楼层 |阅读模式
在网上找到了下面的程序,但好像有点问题,无论我选择启用,还是关闭,程序都是退出,但按照下面程序的逻辑,选择启用,或关闭,应该是有对话框弹出才对,而不是退出。

请各位高手帮忙看看,应该怎样修改。


#NoTrayIcon
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_outfile=C:\Users\Alan\Desktop\11.exe
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#include <Constants.au3>
Opt("TrayMenuMode", 1) ;没有默认的(暂停脚本和退出)菜单.
Opt("trayOnEventMode", 1) ;应用 OnEvent 函数于系统托盘.

$Start = TrayCreateItem("启用") ;创建第一个菜单项
TrayItemSetOnEvent($Start, "TrayMsg") ;注册第一个菜单项的事件(被点下)
TrayCreateItem("") ;创建一个空白的菜单项(即横斜杠分割符)
$Close = TrayCreateItem("关闭") ;创建第二个菜单项
TrayItemSetOnEvent($Close, "TrayMsg") ;注册第二个菜单项的事件(被点下)
TrayCreateItem("") ;
$Quit = TrayCreateItem("退出") ;创建第三个菜单项
TrayItemSetOnEvent($Quit, "TrayMsg") ;注册第二个菜单项的事件(被点下)

TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE, "TrayMsg") ;注册鼠标左键双击事件(只能在 TrayOnEventMode 设置为 1 时才能使用)
TraySetOnEvent($TRAY_EVENT_SECONDARYUP, "TrayMsg") ;注册鼠标右键双击事件(只能在 TrayOnEventMode 设置为 1 时才能使用)
TraySetState()

While 1
    Sleep(5000)
WEnd

Func TrayMsg()                                      ;托盘消息执行函数
    Switch @TRAY_ID                                 ;选择产生消息的 TrayItem 或其它特殊事件(鼠标左键双击事件)
                Case $Start
                       
            ;MsgBox(48, "提示", "你点下了“启用”")
        Case $Close
        
                        ;MsgBox(48, "提示", "你点下了“关闭”")
        Case $TRAY_EVENT_PRIMARYDOUBLE
            
                        MsgBox(48, "提示", "你双击了鼠标左键")
        Case $Quit, $TRAY_EVENT_SECONDARYUP
            Exit
    EndSwitch
EndFunc   ;==>TrayMsg
发表于 2008-9-27 10:55:42 | 显示全部楼层
Tray 动作设置设置有冲突


#NoTrayIcon
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_outfile=C:\Users\Alan\Desktop\11.exe
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#include <Constants.au3>
Opt("TrayMenuMode", 1) ;没有默认的(暂停脚本和退出)菜单.
Opt("trayOnEventMode", 1) ;应用 OnEvent 函数于系统托盘.

$Start = TrayCreateItem("启用") ;创建第一个菜单项
TrayItemSetOnEvent($Start, "TrayMsg") ;注册第一个菜单项的事件(被点下)
TrayCreateItem("") ;创建一个空白的菜单项(即横斜杠分割符)
$Close = TrayCreateItem("关闭") ;创建第二个菜单项
TrayItemSetOnEvent($Close, "TrayMsg") ;注册第二个菜单项的事件(被点下)
TrayCreateItem("") ;
$Quit = TrayCreateItem("退出") ;创建第三个菜单项
TrayItemSetOnEvent($Quit, "TrayMsg") ;注册第二个菜单项的事件(被点下)

;TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE, "TrayMsg") ;注册鼠标左键双击事件(只能在 TrayOnEventMode 设置为 1 时才能使用)
;TraySetOnEvent($TRAY_EVENT_SECONDARYUP, "TrayMsg") ;注册鼠标右键双击事件(只能在 TrayOnEventMode 设置为 1 时才能使用)
TraySetState()

While 1
    Sleep(5000)
WEnd

Func TrayMsg()                                      ;托盘消息执行函数
    Switch @TRAY_ID                                 ;选择产生消息的 TrayItem 或其它特殊事件(鼠标左键双击事件)
                Case $Start
           MsgBox(48, "提示", "你点下了“启用”")
                   
        Case $Close
                        MsgBox(48, "提示", "你点下了“关闭”")
                        
        Case $TRAY_EVENT_PRIMARYDOUBLE
            MsgBox(48, "提示", "你双击了鼠标左键")
                        
        Case $Quit, $TRAY_EVENT_SECONDARYUP
            Exit
    EndSwitch
EndFunc   ;==>TrayMsg
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-24 07:10 , Processed in 0.079116 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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