OverRainbow

win10 移除通知中心列表中已卸载的app图标

☕️ 1 min read

环境

  • windows 10 1607
  • 具有sqlite数据库编辑功能的软件,如navicat

原理

微软把这些推送通知相关的数据存储在了一个SQLite数据库中,由于程序卸载后没有调用hook,导致项目残留。

数据库位置

  • %localappdata%\Microsoft\Windows\Notifications\wpndatabase.db

执行SQL语句批量处理废弃应用

  • 主要处理的是非UWP应用,根据特征(PrimaryId中带有explorer.notification)可以识别。批量删除,无需重启,立即生效。

    ```sql
    delete from NotificationHandler where HandlerType = 'app:desktop' and  PrimaryId like '%explorer.notification%'
    ```
    

    问题到此已经完美解决了。

后记

由于一开始以为微软是写在注册表里面的,所以找来找去只找到了一串explorer.notification{xxx}形式的键名,所在键位为HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Notifications\Settings\ ,以及发现了图标缓存的位置为C:\Users\mzvast\AppData\Local\Microsoft\Windows\Explorer\NotifyIcon

之前也Google过中文和英文的资料,都没有人提到重点,后来无意间看到一篇德文的帖子,然后顺藤摸瓜找到了一个很详尽的讨论帖。但是中文方面,始终没有一个明晰的教程。我就记录一下,希望可以帮助到强迫症们!

参考链接