我正在开发一个 C++ 应用程序,该应用程序在通知区域中创建一个带有气球提示的图标。当用户单击气球时,将使用 Shell_NotifyIcon(NIM_DELETE, &nid) 删除图标,正如 MSDN 指示的那样。
问题是通知图标离开了托盘,但它仍保留在“通知区域图标”窗口中(当您单击 Windows 7/8 托盘中的“自定义”选项时打开的窗口)。然后,如果用户重新启动程序,图标将重复多次,因为程序可以重新启动,即使计算机正在重新启动。
我搜索了一下,发现删除了一些注册表项,可以清理缓存,但是需要重新启动 explorer.exe ......但这不是我想要实践的选项,原因有很多。
我的问题是: - 你们中的任何人以前见过这个吗?- 是否有其他 Shell_NotifyIcon 的替代方法(假设使用这个是问题的可能性,一旦我对 Winapi 没有太多经验);- 有没有办法在不重新启动 explorer.exe 的情况下在通知区域窗口中强制“缓存清理”?
对于那些可以提供帮助的人,我提前表示感谢。