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