【发布时间】:2012-05-12 12:28:42
【问题描述】:
背景: 如果你看这里: http://msdn.microsoft.com/en-us/library/ee330740%28v=vs.85%29.aspx 在底部你会看到:
注意 卸载应用程序后,其通知区域图标仍可作为选项显示在控制面板的通知区域图标页面中长达 7 天。但是,在那里所做的任何更改都不会产生任何影响。
是的,当您卸载应用程序时,该图标仍然存在于“通知区域图标页面”中,直到您杀死 Explorer.exe 并重新启动它 - 这就是我要解决的问题。
您可以通过以下方式进入“通知区域图标页面”(在 Windows 7 中):右键单击任务栏 > 属性 > 自定义
所以我想做的是以编程方式从该列表中删除图标,甚至删除所有图标,然后让 Windows 在您重新打开该列表页面时重新创建它们(这可以通过删除 PastIconsStream 和 @ 987654323@HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify)
但同样,问题是您只能看到结果在您杀死并重新启动 Explorer.exe 之后 - 我假设当您重新启动 explorer.exe 时它会重建列表,但这次是正确的图标(即不包括已卸载应用程序的图标)。
所以为了让事情更简单,我会问这个:
在我删除PastIconsStream 和IconStreams 而不杀死/重新启动 explorer.exe 并且不重新启动/注销之后,如何以编程方式使资源管理器刷新“通知区域图标页面列表”,以便该列表不包括已卸载的应用程序图标?
【问题讨论】:
-
没有支持的方法。
-
有不受支持的方法吗?
-
我的软件会清理未引用的注册表、临时文件……我也希望它从通知中删除不必要的图标,因此我不想杀死资源管理器。
标签: c++ vb.net windows-7 windows-explorer