TrayTip

托盘图标附近显示一个气球提示窗口. 在 Windows 10 及后续版本中, 显示一个 toast 通知.

TrayTip Text, Title, Options

参数

Text

类型: 字符串

如果为空或省略, 则会移除托盘提示中的文本, 这会让它垂直高度变短. 否则, 请指定请托盘提示要显示的消息. 仅显示前 255 个字符.

可以使用回车(`r) 或换行(`n) 来创建多行文本. 例如: Line1`nLine2.

如果 Text 较长, 可以通过延续片段的方法将其分解成较短的几行, 这样可以增加可读性和可维护性.

可以通过留空 Text 来显示只有标题的窗口.

Title

类型: 字符串

如果为空或省略, 则会移除托盘提示的标题行, 这会让它垂直高度变短. 否则, 请指定托盘提示的标题. 仅显示前 63 个字符.

Options

类型: 字符串整数

如果为空或省略, 则默认为 0. 否则, 请指定一个整数值(由加法或按位或的组合), 也可以是一个由至少一个空格或制表符分隔的不区分大小写的零或多个选项字符串. 字符串中还可以包含一个或多个数字选项.

功能 十进制值 十六进制值 字符串
无图标 0 0x0 N/A
信息图标 1 0x1 Iconi
警告图标 2 0x2 Icon!
错误图标 3 0x3 Iconx
托盘图标 4 0x4 N/A
不播放通知音. 16 0x10 Mute
使用大图标. 32 0x20 N/A

如果省略 Title, 也不会显示图标(这不适用于 Windows 10 及后续版本的 toast 通知).

在 Windows 10 及后续版本中, 即使省略了 "tray icon" 选项 (4), 小托盘图标通常也会显示, 并且指定该选项可能会导致程序的名称显示在通知中.

隐藏窗口

要隐藏气球窗口, 同时省略 TextTitle. 例如:

TrayTip

要隐藏 Windows 10 的 toast 通知, 临时移除托盘图标. 例如:

隐藏托盘提示

若要隐藏托盘提示, 请省略所有参数(或至少省略 TextTitle 参数). 例如:

TrayTip

要在 Windows 10 上隐藏托盘提示, 临时移除托盘图标(根据至少一个报告, 这并不总是工作). 例如:

TrayTip "#1", "This is TrayTip #1"
Sleep 3000   ; 让它显示 3 秒钟.
HideTrayTip
TrayTip "#2", "This is the second notification."
Sleep 3000

; 将此函数复制到脚本中使用.
HideTrayTip() {
    TrayTip  ; 尝试以普通的方式隐藏它.
    if SubStr(A_OSVersion,1,3) = "10." {
        A_IconHidden := true
        Sleep 200  ; 可能有必要调整 sleep 的时间.
        A_IconHidden := false
    }
}

备注

在 Windows 10 中, 托盘提示窗口通常是这样的:

TrayTip

Windows 10 及后续版本 默认以 toast 通知替换气球提示窗口(这能被重置通过主策略). TrayTip 多次调用通常会导致多个通知被放置在一个 "队列" 而不是每个通知取代最近的那个.

如果脚本没有托盘图标(使用 #NoTrayIconA_IconHidden := true), 则 TrayTip 没有效果. 同样地, 如果下列的 REG_DWORD 值存在且被设置为 0, 则 TrayTip 没有效果:

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced >> EnableBalloonTips

相关提示, 每当用户把鼠标悬停在脚本托盘图标上时会显示工具提示. 此工具提示的内容可以使用这样的方法改变: A_IconTip := "My New Text".

ToolTip, SetTimer, Menu 对象, MsgBox, InputBox, FileSelect, DirSelect

示例

托盘图标附近显示多行气球消息或 toast 通知 20 秒, 而不播放通知声音. 它也有一个标题并包含一个信息图标.

TrayTip "Multiline`nText", "My Title", "Iconi Mute"

提供更精确的控制显示的时间, 没有使用 Sleep(它会停止当前线程).

TrayTip "This will be displayed for 5 seconds.", "Timed traytip"
SetTimer () => TrayTip(), -5000

下面的代码也有同样的功能, 但可以用上面为 Windows 10 定义的 HideTrayTip 函数来替换.

TrayTip "This will be displayed for 5 seconds.", "Timed traytip"
SetTimer HideTrayTip, -5000

HideTrayTip() {
    TrayTip
}

通过定时器定期刷新, 永久显示托盘提示. 注意: 由于上述原因, 这在 Windows 10 及后续版本中可能无法正常工作.

#Persistent
SetTimer RefreshTrayTip, 1000
RefreshTrayTip  ; 调用一次来让它立即开始.

RefreshTrayTip()
{
    TrayTip "This is a more permanent traytip.", "Refreshed traytip", "Mute"
}