如何在没有资源管理器重启的情况下更新shell命名空间扩展?

时间:2018-03-27 04:15:09

标签: windows shell explorer shell-extensions shell-namespace-extension

我有一个shell namespace extension,使用a file system folder as its junction point(通过在文件夹中创建一个带有我的扩展程序CLSID的desktop.ini文件)。

升级到新版本的扩展程序时,我希望避免重新启动所有已加载扩展程序的进程(这是How to unload C++ Shell Extension DLL properly中的建议答案),以提供更好的用户体验。

我试过了:

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

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

我在Windows 7和Windows 10 Fall Creators上测试了这个。

0 个答案:

没有答案