Windows 10 Toast通知归属区域应用名称旁图标更改方法
更改Windows 10 Toast通知归属区域主图标的方法
Toast通知归属区域(应用名称旁)的主图标,并非通过Toast XML内容直接修改,而是与应用注册的AppUserModelID绑定——Windows会通过这个唯一ID识别应用,并加载对应快捷方式中配置的图标。以下是适配Delphi Seattle环境的具体实现步骤:
核心原理
系统通过AppUserModelID关联进程与应用注册信息,Toast通知的归属图标会读取该ID对应快捷方式的图标配置,而非Toast XML中的元素。
具体操作步骤
1. 设置应用的AppUserModelID
在Delphi代码中,调用系统API为当前进程绑定唯一的AppUserModelID:
// 声明API函数 function SetCurrentProcessExplicitAppUserModelID(AppID: LPCWSTR): HRESULT; stdcall; external 'shell32.dll'; // 在窗体创建事件中执行设置 procedure TMainForm.FormCreate(Sender: TObject); var CustomAppID: WideString; ResultHR: HRESULT; begin CustomAppID := 'com.yourcompany.yourapp.toast'; // 自定义唯一ID,格式建议用反向域名 ResultHR := SetCurrentProcessExplicitAppUserModelID(PWideChar(CustomAppID)); if Failed(ResultHR) then ShowMessage('AppUserModelID设置失败'); end;
2. 创建并配置应用快捷方式
需要创建一个包含AppUserModelID和自定义图标属性的快捷方式,放置在系统可识别的位置(如开始菜单文件夹):
- 可以通过Delphi的ShellAPI编写代码生成,也可以用PowerShell脚本辅助配置:
# 示例PowerShell脚本,需替换为你的应用路径 $shortcutPath = "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\YourApp.lnk" $appExePath = "C:\Path\To\Your\App.exe" $customIconPath = "C:\Path\To\Your\CustomIcon.ico" $appID = "com.yourcompany.yourapp.toast" # 与代码中一致的ID # 创建快捷方式 $wsShell = New-Object -ComObject WScript.Shell $shortcut = $wsShell.CreateShortcut($shortcutPath) $shortcut.TargetPath = $appExePath $shortcut.IconLocation = "$customIconPath, 0" $shortcut.Save() # 设置AppUserModelID属性 $shell = New-Object -ComObject Shell.Application $folder = $shell.Namespace((Split-Path $shortcutPath)) $shortcutFile = $folder.ParseName((Split-Path $shortcutPath -Leaf)) $propStore = $shortcutFile.GetPropertyStore(1) # System.AppUserModel.ID的属性GUID为 {9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3} $propStore.SetValue([guid]'{9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3}', 2, $appID) $propStore.Commit()
3. 验证生效
重启应用后发送Toast通知,归属区域的主图标会替换为你配置的自定义图标。
关键说明
- 你之前修改的
appLogoOverride、hero等属于Toast通知内部的图标,与归属区域的主图标分属不同配置逻辑; AppUserModelID必须全局唯一,建议采用反向域名格式避免冲突;- 快捷方式必须放置在系统可索引的位置(如开始菜单),否则Windows无法关联进程与图标配置。
内容的提问来源于stack exchange,提问作者szpliter
相关产品推荐
相关产品推荐

