我创建了一个正常工作的shell扩展(DLL),但是当使用卸载程序删除未删除DLL的程序时,它是由Windows资源管理器打开的。我必须使用TaskManager首先关闭Explorer.exe然后再次运行它并删除manualy该文件(Shell Extenstion Dll), 现在我的问题是,如何删除卸载程序脚本中的Shell Extestion文件?我使用Nullsoft Scriptable Install System 2.46(NSIS)来创建安装程序。
答案 0 :(得分:1)
在Windows上卸载shell扩展没有好办法。
您最好的选择是尝试删除.dll并重新启动重启:Delete /RebootOK "$InstDir\MyExt.dll"
。
另一种方法是尝试将.dll移动到%temp%。这不会卸载扩展名,但它会允许您删除其他所有内容,并且下次用户登录时不会加载扩展名。(这只有在与%temp%相同的卷上时才会起作用吗?)
请务必记住,使用“打开/保存”常用对话框或在内部使用SHGetFileInfo()
,IShellFolder
或IShellItem
的任何应用程序都可能已加载您的扩展程序,因此只是杀死资源管理器可能不会够了。