[AHK2&L-UI] 个性化你的Tray

发布时间 2023-08-23 15:12:02作者: 落寞的雪

个性化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