2012-10-30 60 views
7

我有一个Inno Setup脚本来安装我的应用程序及其附带的文件。 在某些系统上需要重新启动,有些则不需要。 我想找出所需重启的原因。 我该如何最智能地做到这一点? 非常感谢。InnoSetup:找出重新启动的原因

+1

只是为了调试?您可以在HKLM \ System \ CurrentControlSet \ Control \ Session Manager \ PendingFileRenameOperations中查看是否有排队的移动/删除操作正在等待下次重新启动 –

+0

@Alex,没有直接的方法可以从InnoSetup脚本中确定它,所以它可能是回答。 – TLama

+0

是的,请设置为“答案”。 – tmighty

回答

4

为了调试的目的,你可以窥视里面

HKLM\System\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations

,看看是否有任何移动/重命名已排队等待下次重新启动/删除操作。

Sysinternals utility viewer

+1

真的有帮助,完美的解决方案,非常感谢! – tmighty

1

使用/LOG当您运行安装,然后看它(在%TEMP%默认)生成的日志文件。它应该清楚地显示哪些文件在重新启动时排队等待替换,或者哪些其他原因导致了重新启动请求被发出。

通常重启被的restartreplace过度使用,而无需使用像AppMutex的东西,以确保该应用程序已关闭安装,或在[Run]执行subinstalls之前正确触发。

相关问题