iexpress重启的条件是什么

时间:2015-10-01 07:18:38

标签: iexpress

我使用iexpress.exe快速创建基于批处理文件的简单安装程序。 IExpress向导提供选项"仅在需要时重新启动"。

但是如何从批处理文件中判断需要重启?我尝试在Windows更新中使用退出代码3016。但这不起作用。

BTW:我用

调用批处理文件
cmd.exe /c my.bat

my.bat的内容:

exit /b 3010

1 个答案:

答案 0 :(得分:1)

我试图让IExpress识别返回代码。我想你想要3010,而不是3016。命令也是:

exit 3010

[否/b - 我们想要从cmd返回退出代码,而不是设置errorlevel]。

但是它不起作用,这让我想知道IExpress是否甚至不愿意检查它。

无论如何,我对Process Monitor进行了一些调查。在安装过程运行后,IExpress似乎立即检查PendingFileRenameOperations注册表值,以查看文件是否已标记为重命名(或删除)。如果有,它确定需要重新启动,并采取您在SED文件中指定的操作(例如,提示用户重新启动;或者只是重新启动;或者什么都没有)。

  

如果您不熟悉它,PendingFileRenameOperations注册表值是下次系统启动时要移动或删除的文件列表。

您可以使用Sysinternals MoveFile来模拟其中一个计划的下次启动重命名。将movefile.exe添加到您的IExpress存档,并在批处理文件中添加如下所示的行:

movefile.exe -accepteula foo bar

实际的文件名并不重要 - 只需使用您知道确定的文件。 (只要您没有更改批处理文件中的目录,那仍然是一个文件,例如%temp%\IXP000.TMP。)

请注意,您需要为此升级(以管理员身份运行)。

在这里工作得很好。每次运行后都会弹出IExpress,提示用户重新启动。