TrayTip

托盘图标附近显示一个气球消息窗口, 在 Windows 10 中及更高版本中显示 toast 通知.

TrayTip , Title, Text, Timeout, Options

参数

Title

如果为空或省略, 则会移除 traytip 的标题行, 这会让它垂直高度变短. 否则, 请指定 traytip 的标题. 仅显示前 73 个字符(超出此长度的字符不会显示出来).

如果省略了 Text 参数, 那么即使指定了 Title 参数, 也不会显示 traytip 窗口.

Text

如果为空或省略, 则移除当前显示的任何托盘提示窗口. 否则, 请指定要显示的消息. 仅显示前 265 个字符.

在 Windows 10 中及更高版本中, 要隐藏 toast 通知, 可能需要临时移除托盘图标.

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

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

Timeout

注意: 这参数在 Windows Vista 及之后系统无效.

如果为空或省略, 默认为 10(最短显示时间). 否则, 请指定托盘提示显示的近似秒数, 达到这时间后它会被操作系统自动移除. 指定小于 10 或大于 30 的数字时通常会使用最小(10) 或最大(30) 的显示时间代替. 此参数可以为表达式.

真实的时间可能不同于指定的时间. 微软解释说, "如果用户貌似没有使用计算机(空闲状态), 那么系统不会以这个参数计算超时."(技术细节请参阅这里.) 因此, 要更精确地控制托盘提示显示的时间, 请使用 Sleep 命令后面跟着不带参数的 TrayTip, 或像下面的示例中演示的那样使用 SetTimer.

Options

如果为空或省略, 则默认为 0, 即无图标. 否则, 请指定以下零个或多个选项的组合(和):

功能十进制值十六进制值
信息图标10x1
警告图标20x2
错误图标30x3
Windows XP 和之后的: 不发出提示声.160x10
Windows Vista 和之后的: 使用大图标.320x20

如果提示消息没有 Title(这不适用于 Windows 10 及后续版本的 toast 通知), 则不会显示图标.

此参数可为表达式.

备注

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

TrayTip

Windows 10 及以后 默认以 toast 通知替换气球提示窗口(这能通过主策略重置). TrayTip 多次调用通常会导致多个通知被放置在一个 "队列" 而不是每个通知取代最近的那个. 若要隐藏通知, 暂时移除托盘图标可能是有效的. 例如:

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." {
        Menu Tray, NoIcon
        Sleep 200  ; 可能有必要调整 sleep 的时间.
        Menu Tray, Icon
    }
}

如果脚本没有托盘图标(使用 #NoTrayIconMenu, tray, NoIcon), 则不会显示托盘提示的气球窗口. 同样地, 如果下列的 REG_DWORD 值已经存在且被设置为 0, 则 TrayTip 不起作用:

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

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

ToolTip, SetTimer, Menu, SplashTextOn, MsgBox, InputBox, FileSelectFile, FileSelectFolder

示例

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

TrayTip, My Title, Multiline`nText, 20, 17

提供一个更精确的控制显示的时间的方法, 不要使用 Sleep(它会停止当前线程). 对于 Windows 10 及后续版本, 用上面定义的函数替换 HideTrayTip 函数.

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

HideTrayTip() {
    TrayTip
}

要永久显示托盘提示, 请使用计时器进行周期性的刷新. 注意: 由于上述原因, 这可能无法很好地在 Windows 10 及后续版本上运行.

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

RefreshTrayTip:
TrayTip, Refreshed traytip, This is a more permanent traytip., , 16
return