You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用BurntToast动态修改Windows通知按钮的标题与参数?

实现BurntToast通知的Pause/Resume按钮切换

要实现点击「Pause」按钮后切换为「Resume」按钮的效果,核心是利用BurntToast的UniqueIdentifier特性——通过同一个唯一ID发送新通知,直接替换掉当前显示的通知。具体实现如下:

核心思路

  1. 用变量跟踪当前下载状态(暂停/正在下载)
  2. 注册自定义协议stackoverflow://,让按钮点击事件能触发PowerShell脚本处理请求
  3. 根据状态切换按钮的文本和协议参数,用同一个唯一ID重新发送通知替换原有通知

完整代码实现

# 初始化状态与通知唯一ID
$isPaused = $false
$notificationId = 'example'

# 解析协议请求并处理状态切换
if ($args.Count -gt 0) {
    $action = $args[0] -replace 'stackoverflow://', ''
    switch ($action) {
        'pause' { $isPaused = $true }
        'resume' { $isPaused = $false }
        'cancel' {
            Remove-BTNotification -UniqueIdentifier $notificationId
            exit
        }
    }
}

# 根据当前状态生成对应按钮
if ($isPaused) {
    $controlButton = New-BTButton -Arguments 'stackoverflow://resume' -Content 'Resume' -ActivationType Protocol
    $statusText = '已暂停'
}
else {
    $controlButton = New-BTButton -Arguments 'stackoverflow://pause' -Content 'Pause' -ActivationType Protocol
    $statusText = '正在下载...'
}
$cancelButton = New-BTButton -Arguments 'stackoverflow://cancel' -Content 'Cancel' -ActivationType Protocol

# 配置通知数据与进度条
$Data = @{
    Line1Data = 'Line 1'
    Line2Data = 'Line 2'
    Line3Data = 'Line 3'
    StatusData = $statusText
    TitleData = '文件下载中'
    ValueData = 15/100 # 可替换为实时进度值
}

$ProgressBar = New-BTProgressBar -Status 'StatusData' -Title 'TitleData' -Value 'ValueData'

# 发送/更新通知(同一ID替换原有通知)
New-BurntToastNotification -Button $controlButton, $cancelButton `
                           -ProgressBar $ProgressBar `
                           -Text 'Line1Data', 'Line2Data', 'Line3Data' `
                           -DataBinding $Data `
                           -UniqueIdentifier $notificationId

协议注册步骤

要让按钮点击能触发脚本,需要在系统注册表中注册stackoverflow://协议:

  1. 打开注册表编辑器,定位到HKEY_CLASSES_ROOT\stackoverflow
  2. 设置默认值为"URL:stackoverflow Protocol",添加名为URL Protocol的字符串值(无需填写内容)
  3. 创建shell\open\command键,将默认值设为"powershell.exe -File '你的脚本完整路径.ps1' -action %1"

内容的提问来源于stack exchange,提问作者Çağatay KAYA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 00:05:19