# TraySetIcon

更改脚本的托盘图标(它也被 GUI 和对话框窗口使用).

    TraySetIcon(FileName, IconNumber, Freeze)

## 参数

FileName

  类型: 字符串

  图标或图片的路径. 有关支持格式的列表, 请参阅图片控件.

  指定星号(*) 将脚本恢复到其默认图标.

IconNumber

  类型: 整数

  要使用文件中除第一组图标之外的图标组, 请在 IconNumber 指定它的编号(如果省略, 则它默认为 1). 例如, 2 将加载第二组图标中的默认图标. 如果 IconNumber 为负数, 则假定其绝对值表示可执行文件中图标的资源 ID.

Freeze

  类型: 整数(布尔值)

  指定 1(true) 来冻结图标, 或 0(false) 来解冻它(或留空来保持冻结/解冻状态不变). 当图标已经冻结时, Pause 和 Suspend 不会改变它. 注意: 要冻结或解冻 当前 图标, 请使用 1(true) 或 0(false), 如下例所示: `TraySetIcon(,, 1)`.

## 备注

改变托盘图标同时也改变由 InputBox 和后续创建的 GUI 窗口显示的图标. 也会影响已编译脚本, 即使它在编译时指定了自定义的图标. 注意: 如果之前使用如 #NoTrayIcon 的方法隐藏了托盘图标, 则改变图标不会让它显示出来; 要让它显示, 请使用 `A_IconHidden := false`.

从 .ICO 外的其他类型文件中加载托盘图标时可能产生轻微的变形. 尤其是对于 16x16 的图标. 要避免此问题, 请把要使用的托盘图标保存为 .ICO 文件.

操作系统的 DLL 和 CPL 文件包含的一些内置图标可能会有用. 例如: `TraySetIcon "Shell32.dll", 174`.

位图或图标句柄可替代文件名. 例如, `TraySetIcon "HBITMAP:" handle`.

内置变量 A_IconNumber 和 A_IconFile 分别包含了当前图标的编号和名称(带完整路径)(如果为默认图标则两者都为空).

托盘图标的工具提示可以通过给 A_IconTip 赋值来更改.

## 相关

#NoTrayIcon, TrayTip, Menu 对象

dftg