找回密码
 加入
搜索
查看: 2070|回复: 4

[AU3基础] [已解决]如何切换托盘图标的勾选状态

[复制链接]
发表于 2017-5-19 07:11:08 | 显示全部楼层 |阅读模式
本帖最后由 3131210 于 2017-5-23 15:30 编辑

如何切换托盘图标的勾选状态
我想实现的是点击一次勾选,再点一次取消勾选
下面的代码不能取消勾选
#NoTrayIcon
#include <AutoItConstants.au3>
#include <MsgBoxConstants.au3>
#include <TrayConstants.au3> ; $TRAY_CHECKED 与 $TRAY_ICONSTATE_SHOW 常量定义文件.

Opt("TrayMenuMode", 3) ; 默认托盘菜单项目将不会显示, 当选定项目时也不检查. TrayMenuMode 的其它选项为 1, 2.

Example()

Func Example()
    ; 选择单选项目参数创建一个托盘项目.
    Local $ShowItem = TrayCreateItem("单选框 1", -1, -1, $TRAY_ITEM_RADIO)
    TrayCreateItem("") ; 创建分隔线.

    Local $idAbout = TrayCreateItem("关于...")
    TrayCreateItem("") ; 创建分隔线.

    Local $idExit = TrayCreateItem("退出")

    TraySetState($TRAY_ICONSTATE_SHOW) ; 显示托盘菜单.

    While 1
        Switch TrayGetMsg()
                        Case $ShowItem
                                If TrayItemGetState($ShowItem) = 65 Then
                                        TrayItemSetState($ShowItem, $TRAY_UNCHECKED)
                                EndIf
                                If TrayItemGetState($ShowItem) = 68 Then
                                        TrayItemSetState($ShowItem, $TRAY_CHECKED)
                                EndIf


            Case $idAbout ; 显示一个有关 AutoIt 版本和可执行文件安装路径的消息框.
                MsgBox($MB_SYSTEMMODAL, "", "AutoIt 托盘菜单示例." & @CRLF & @CRLF & _
                        "AutoIt 版本: " & @AutoItVersion & @CRLF & _
                        "安装路径: " & StringLeft(@AutoItExe, StringInStr(@AutoItExe, "", 0, -1) - 1)) ; 查找完整路径的文件夹.

            Case $idExit ; 退出循环.
                                MsgBox(0,0,TrayItemGetState($ShowItem))
                ExitLoop
        EndSwitch
    WEnd
EndFunc   ;==>Example

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-5-19 09:19:58 | 显示全部楼层
回复 1# 3131210

加個判斷  勾選後 把某個變數 設為1  如果 變數是1  就變 0  然後不勾選
发表于 2017-5-19 23:58:04 | 显示全部楼层
练习一下:

#NoTrayIcon
#include <AutoItConstants.au3>
#include <MsgBoxConstants.au3>
#include <TrayConstants.au3> ; $TRAY_CHECKED 与 $TRAY_ICONSTATE_SHOW 常量定义文件.

Opt("TrayMenuMode", 3) ; 默认托盘菜单项目将不会显示, 当选定项目时也不检查. TrayMenuMode 的其它选项为 1, 2.
$xian = 0
Example()

Func Example()
    ; 选择单选项目参数创建一个托盘项目.
    Local $ShowItem = TrayCreateItem("单选框 1", -1, -1, $TRAY_ITEM_RADIO)
    TrayCreateItem("") ; 创建分隔线.

    Local $idAbout = TrayCreateItem("关于...")
    TrayCreateItem("") ; 创建分隔线.

    Local $idExit = TrayCreateItem("退出")

    TraySetState($TRAY_ICONSTATE_SHOW) ; 显示托盘菜单.
    While 1
        Switch TrayGetMsg()
                        Case $ShowItem
                                        If $xian = 0 Then
                                                TrayItemSetState($ShowItem, $TRAY_CHECKED)
                                                $xian = 1
                                        Else
                                                TrayItemSetState($ShowItem, $TRAY_UNCHECKED)
                                                $xian = 0
                                        EndIf


            Case $idAbout ; 显示一个有关 AutoIt 版本和可执行文件安装路径的消息框.
                MsgBox($MB_SYSTEMMODAL, "", "AutoIt 托盘菜单示例." & @CRLF & @CRLF & _
                        "AutoIt 版本: " & @AutoItVersion & @CRLF & _
                        "安装路径: " & StringLeft(@AutoItExe, StringInStr(@AutoItExe, "\", 0, -1) - 1)) ; 查找完整路径的文件夹.

            Case $idExit ; 退出循环.
                                MsgBox(0,0,TrayItemGetState($ShowItem))
                ExitLoop
        EndSwitch
    WEnd
EndFunc   ;==>Example
发表于 2017-5-20 20:18:20 | 显示全部楼层
难道是我的AU3 版本过时了  怎么没有
#include <AutoItConstants.au3>
#include <MsgBoxConstants.au3>
#include <TrayConstants.au3>
发表于 2017-5-21 00:07:31 | 显示全部楼层
回复 4# veve


    你什么版本?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-22 05:55 , Processed in 0.078592 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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