How to get an IS install to detect another (different) active IS install
We create many InstallShield (IS) install exes for different "updates" to a primary program we use. The updates are called update1, update2, ... update10, etc. One, some, or all of these optional update installs may be executed on the same target PC.
We know that when starting one of the "update" install exes, IS can detect if another instance of that SAME "update" install is already active. If that happens, IS immediately produces an error box:
"Another instance of this setup is already running. Please wait for the other instance to finish and then try again".
The end-user is SUPPOSED to install an "update" one a time. But we have found that it is possible to have different IS installs active at the same time, and that is NOT acceptable.
So... how do we get IS to detect if any other IS install is active, and produce an error box stating something like "Another IS install "update3" is already in progress! Cancel or complete that install before launching this install"?
We use InstallScript in our projects. No matter what we have tried, we cannot get the detection of other IS installs to occur BEFORE the current IS install processes become active, which makes them found when 'tasklist /fi' (or some other command like 'grep') is run during the current install (done in Setup.Rul and executed as a bat script). Thus the current install cannot be performed at all, even if there are no OTHER active installs.
We need to find a way to have the detection done BEFORE the processes for the CURRENT install get started.
We want IS to detect if there is ANY other install active that the CURRENT one that is just being launched.
We see 4 processes once an IS install is started:
[current install filename (exa: update2)]
We prefer just finding if setup.exe or ISBEW64.exe is active, but again, the batch script we have implemented, runs too late, after those processes have already been started for the current install.