我正在 NSIS 上编写一个注册 shell 扩展的安装程序。
在卸载和升级时,由于 explorer.exe 锁定旧扩展,因此无法删除/覆盖旧扩展,并且排除了杀死 - 重新启动进程。
因此,我使用不同的名称提取新扩展名,将旧扩展名标记为删除(卸载/升级)并通过PendingFileRenameOperations注册表项将新扩展名重命名为其原始名称(仅限升级)。到目前为止,这工作正常。
问题是,我必须在启动时注册新的 shell 组件,因为PendingFileRenameOperations仅在重新启动时有效。有没有办法在重新启动后安排 regsvr32 操作?
我不能依靠在RunOnce上执行 .bat 来做到这一点,因为注销/登录也会触发RunOnce操作。
提前致谢。