[已解决]如何切换托盘图标的勾选状态
本帖最后由 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
回复 1# 3131210
加個判斷勾選後 把某個變數 設為1如果 變數是1就變 0然後不勾選 练习一下:
#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 难道是我的AU3 版本过时了怎么没有
#include <AutoItConstants.au3>
#include <MsgBoxConstants.au3>
#include <TrayConstants.au3> 回复 4# veve
你什么版本?
页:
[1]