Issues with Inno Installer that has a second install

I have this installer that seems to use Inno to package itself, and I am running into issues due to it calling a second .exe after the initial installer ends. It is quite annoying because unlike some other .EXEs I have issues with, they actually have a good /? /HELP setup that works great for that first installer and installs silently.

The problems arise when the first installer ends, it calls to a second installer for a camera driver install. I extracted the Inno package and can see the second installer called ‘Camera Driver V2.1.3.1.exe’. It also has silent parameters that I can use that match the full installer, but it does not seem to pass those due to it being a different EXE.

I feel like I have seen another tool use a /SAVEINF parameter, but I am not totally sure how that is supposed to work. The only example I find seems to say something about an answer file, which they just say to put ‘no’, but I guess I have not worked with answer files yet.

So far, I have the following, which might not be correct:

Start-ADTProcess -FilePath 'CaptaVision+V3.0.7.2_PV3.0.7.9_Windows_Setup_241203.exe' -ArgumentList '/SP- /VERYSILENT /SUPPRESSMSGBOXES  /LANG=En-us /NORESTART /SAVEINF="Camera Driver V2.1.3.1.exe"'

From my understanding, I will basically be killing this second install, then running it on its own from the .exe that I extracted, which sounds easy, but I am not sure how to at least cancel that install before I run it separately.

Thanks a head of time for anyone that can help with this! I have come here with other weird issues, and everyone has been incredibly helpful in helping me learn this tool!

According to Inno Setup help file:

/SAVEINF="filename"

Instructs Setup to save installation settings to the specified file.

Don't forget to use quotes if the filename contains spaces.

So the /SAVEINF argument is probably used to create an “answerfile” while running through the setup manually with the resulting file to be used later to achieve a silent installation.

I have tried what you are attempting to do, but it appears the Innosetup is written in a way that it can not be silently installed in full :exploding_head:.
I’d suggest you have a look at this:

and download and install the Windows InnoUnpacker 2.0 (latest version from Feb 2025) quite a handy utility to extract the CaptaVision+V3.0.7.2_PV3.0.7.9_Windows_Setup_241203.exe.

Inside this extracted file you will find an install_script.iss (in the root of the folder structure) which contains all the install commands (I believe this may be missing the correct silent syntax for both the Camera Driver and VC++ installer), so you may have to create your own silent installer from the contents of the extracted main file (You will find these below the {app} folder)

  • “CaptaVision+V3.0.exe” (Main app installer)
  • “Camera Driver V2.1.3.1.exe” (Camera Driver)
  • “vc_redist_2015.exe” (Visual C++ 2015 Redistributable)

Possibly by including all the original files from the extracted innosetup file inside your PSADT wrapped installer you can trigger 3 separate ‘silent’ install commands for each installer

I hope that makes sense?

3 Likes

That does make a ton more sense! I think I am finally getting somewhere with it, thanks to that InnoUnpacker. It is sad how badly they put this thing together, as the Camera Driver exe installs another exe, so it puts in two entries in the Add/Remove Control Panel. So, I found I could basically just use DPInst.exe and give it the .inf… Makes it way easier to actually uninstall because that Camera Driver unins000.exe is garbage and no matter how much I tell it to uninstall via /SILENT /VERYSILENT /SUPPRESSMSGBOXES and it would actually uninstall, but would pop up with a yes/no prompt… Funny thing is that it wouldn’t matter what you choose as the thing is uninstalled in the background before you can even respond haha

1 Like

Now, it is super weird… I think I am seeing why they run the two installers for that driver…

It first will copy the DPInst.exe to C:\Program Files\DIFX\4A7292F75FEBBD3C, then runs the actual installer. I tried basically doing it myself with the following back to back:

Copy-ADTFile -Path "$($adtSession.DirSupportFiles)\Driver\*" -Destination "C:\Program Files\DIFX\4A7292F75FEBBD3C\" -Recurse
Start-ADTProcess -FilePath "C:\Program Files\DIFX\4A7292F75FEBBD3C\DPInst.exe" -ArgumentList '/S'

yet, it can’t seem to find the DPInst.exe in that directory… I know it is in there, but I haven’t really ever had to install from a local folder. I guess I am not sure if this is even totally needed, but I definitely need those files copied anyway, just because it makes the uninstall easier later.

1 Like

I wonder if it’s worth having a conversation with the vendors support team and asking how you ‘fully’ silently install the whole product, and share you experience that the silent install doesn’t work as it should.
They may then look into repackaging the product installer🤷‍♂️

I’ve just had another thought, I wonder if you made a couple more tweaks to your code - Force the copy to ensure it copies and then sleep for 5 seconds to give the machine time before running the DPInst.exe, example :

Copy-ADTFile -Path "$($adtSession.DirSupportFiles)\Driver\*" -Destination "C:\Program Files\DIFX\4A7292F75FEBBD3C\" -Recurse -Force
Start-Sleep -Seconds 5
Start-ADTProcess -FilePath "C:\Program Files\DIFX\4A7292F75FEBBD3C\DPInst.exe" -ArgumentList '/S'

The other issue is some Anti-virus / Anti-malware products may not trust the the DPInst.exe executable (depends on whether it is code signed, it’s age and trustworthiness), so when executed the AV might be detecting the file as suspicious and it gets blocked (Depending on your security settings Windows Defender can do this) - the result is when it is executed the usual response is the file is not found.
You could put in a check after the copy to see if the DPInst.exe actually exists (and write the result to the log), before you attempt to execute it. Or you could investigate your Anti-virus logs to see if it’s being trapped?

2 Likes