个性化TrayIcon
ahk2的托盘图标设置起来十分容易,只要使用一行代码即可。
如将当前脚本托盘图标换为桌面下的Customize.ico
TraySetIcon A_Desktop "/Customize.ico"
个性化TrayItem
对于设置托盘项,官方文档中已经做了详细的介绍,这里只是做了以下事情:
- 去除默认项
- 设置双击事件为切换状态(ahk2&L),同时改变托盘项的图标(ahkL)
- 添加退出脚本按钮
下面是ahk两个版本的相应实现。
ahk2
Class Config {
; The text on tray-item
static trayItemOn := 'Show'
static trayItemOff := 'Hide'
}
; tray setting
tray := A_TrayMenu
; set dobule-click
tray.ClickCount := 2
; delete standard item
tray.delete
tray.add Config.trayItemOff, _Toggle
; division
tray.add
; add exit item
tray.add "Exit", (*) => ExitApp()
tray.default := Config.trayItemOff
; param:
; ret: -->
; desc: Toggle tray item name
_Toggle(*) {
static flag := true
if flag {
tray.rename(Config.trayItemOff, Config.trayItemOn)
} else {
tray.rename(Config.trayItemOn, Config.trayItemOff)
}
flag := !flag
}
ahkL
对于这个版本我曾写过一套模版,需要的复制即可,但我不建议继续使用ahk2以前的版本。
; store state
IsOn:=True
; text of tray-item
_Open:="Open"
_Close:="Close"
; setting
Menu,Tray,Icon,%A_Desktop%/Icon/_Open.ico
Menu,Tray,NoStandard
Menu,Tray,Add,%_Close%,_Toggle
Menu,Tray,Default,%_Close%
Menu,Tray,Click,2
Menu,Tray,Add,&Exit,_MenuExit
;====
_Toggle:
If(IsOn) {
; close
Menu,Tray,Rename,%_Close%,%_Open%
Menu,Tray,Icon,%A_Desktop%/Icon/_Close.ico
IsOn:=False
}Else{
; open
Menu,Tray,Rename,%_Open%,%_Close%
Menu,Tray,Icon,%A_Desktop%/Icon/_Open.ico
IsOn:=True
}
Return