TraySetOnEvent
定义托盘特殊事件时调用的自定义函数.
TraySetOnEvent ( specialID, "function" )
参数
specialID
|
见下面 专用 ID 表 below.
|
function
|
调用的用户函数名称.
|
返回值
成功:
|
返回 1.
|
失败:
|
返回 0.
|
@error:
|
1 = "函数" 未定义.
|
备注
OnEvent(事件) 函数只能在 Opt("TrayOnEventMode", 1) 项设置为 1 时才能调用 - 此时不能使用 TrayGetMsg().
专用 ID 表
专用 Id
|
值
|
注释
|
$TRAY_EVENT_SHOWICON
|
-3
|
显示托盘图标.
|
$TRAY_EVENT_HIDEICON
|
-4
|
隐藏托盘图标.
|
$TRAY_EVENT_FLASHICON
|
-5
|
用户打开托盘图标闪烁(效果).
|
$TRAY_EVENT_NOFLASHICON
|
-6
|
用户关闭托盘图标闪烁(效果).
|
$TRAY_EVENT_PRIMARYDOWN
|
-7
|
鼠标左键在托盘图标上按下.
|
$TRAY_EVENT_PRIMARYUP
|
-8
|
鼠标左键在托盘图标上释放.
|
$TRAY_EVENT_SECONDARYDOWN
|
-9
|
鼠标右键在托盘图标上按下.
|
$TRAY_EVENT_SECONDARYUP
|
-10
|
鼠标右键在托盘图标上释放.
|
$TRAY_EVENT_MOUSEOVER
|
-11
|
鼠标移到托盘图标.
|
$TRAY_EVENT_PRIMARYDOUBLE
|
-13
|
鼠标左键双击托盘图标.
|
$TRAY_EVENT_SECONDARYDOUBLE
|
-14
|
鼠标右键双击托盘图标.
|
如果 "function" 为空字符串 "", 则关闭先前定义的用户函数.
上述常量需要 #include <TrayConstants.au3>.
相关
TrayItemSetOnEvent, TrayOnEventMode (Option), TraySetClick
函数示例
#NoTrayIcon
#include <MsgBoxConstants.au3>
#include <TrayConstants.au3> ; Required for the $TRAY_EVENT_PRIMARYDOUBLE, $TRAY_EVENT_SECONDARYUP and $TRAY_ICONSTATE_SHOW constants.
Opt("TrayMenuMode", 3) ; The default tray menu items will not be shown and items are not checked when selected. These are options 1 and 2 for TrayMenuMode.
Opt("TrayOnEventMode", 1) ; Enable TrayOnEventMode.
Example()
Func Example()
TrayCreateItem("About")
TrayCreateItem("") ; Create a separator line.
TrayCreateItem("Exit")
TrayItemSetOnEvent(-1, "ExitScript")
TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE, "TrayEvent")
TraySetOnEvent($TRAY_EVENT_SECONDARYUP, "TrayEvent")
TraySetState($TRAY_ICONSTATE_SHOW) ; Show the tray menu.
While 1
Sleep(100) ; An idle loop.
WEnd
EndFunc ;==>Example
Func TrayEvent()
Switch @TRAY_ID ; Check the last tray item identifier.
Case $TRAY_EVENT_PRIMARYDOUBLE
; Display a message box about the AutoIt version and installation path of the AutoIt executable.
MsgBox($MB_SYSTEMMODAL, "", "AutoIt tray menu example." & @CRLF & @CRLF & _
"Version: " & @AutoItVersion & @CRLF & _
"Install Path: " & StringLeft(@AutoItExe, StringInStr(@AutoItExe, "\", 0, -1) - 1)) ; Find the folder of a full path.
Case $TRAY_EVENT_SECONDARYUP
MsgBox($MB_SYSTEMMODAL, "", "The secondary mouse button was released on the tray icon.")
EndSwitch
EndFunc ;==>TrayEvent
Func ExitScript()
Exit
EndFunc ;==>ExitScript
----------------------------------------
|