3

我有一个shell 命名空间扩展,使用文件系统文件夹作为其连接点(通过在文件夹中使用我的扩展的 CLSID 创建一个 desktop.ini 文件)。

升级到新版本的扩展时,我想避免重新启动所有加载了扩展的进程(这是如何正确卸载 C++ Shell 扩展 DLL中的建议答案),以提供更好的用户体验。

我试过了:

以上都没有成功强制资源管理器加载新版本的扩展。

我还尝试为新版本的扩展注册一个全新的 CLSID,并删除旧版本的注册。这通常有效,除非打开任何先前存在的指向文件夹的快捷方式。在这种情况下,既不会加载旧扩展名也不会加载新扩展名,而是使用默认的 shell 文件夹来显示该文件夹。我再次尝试了 SHChangeNotify、SHFlushSFCache 和 SHGetSetFolderCustomSettings,但它们都没有通过快捷方式解决此问题。

我在 Windows 7 和 Windows 10 Fall Creators 上对此进行了测试。

4

0 回答 0