Restarting a Target Machine for InstallShield Prerequisite Installations

InstallShield 2012 Spring

InstallShield uses several methods to determine if a target machine should be restarted after running the InstallShield prerequisite.

Registry Key Changes

The target machine may need to be restarted if any of the following registry keys have been modified after the InstallShield prerequisite has been run:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Session Manager\FileRenameOperations

The registry keys are counted before and after the InstallShield prerequisite is run. If these numbers are not the same, it is assumed that the file is trying to restart the system and exit the installation.

Return Code Specified in the .prq File

If the exit code of the .exe file matches the return code specified in the InstallShield prerequisite file (.prq), the target machine may need to be restarted. The return code of the .prq file is entered in the Specify the return code the application returns if a reboot is required box of the InstallShield Prerequisite Editor. For more information, see Specifying Parameters for Installing an InstallShield Prerequisite.

Return Codes 1641 and 3010

The target machine may need to be restarted if a reboot state is returned for an .msi package that is run for an InstallShield prerequisite. The standard Windows Installer reboot return codes are:

ERROR_SUCCESS_REBOOT_INITIATED (1641)
ERROR_SUCCESS_REBOOT_REQUIRED (3010)

Behavior Specified in the .prq File

One of the fields on the Behavior tab in the InstallShield Prerequisite Editor enables you to specify what should happen if any of the aforementioned conditions are or are not applicable to a particular InstallShield prerequisite. For more information, see Specifying the Behavior for an InstallShield Prerequisite that Requires a Restart.

See Also