Install Mode extensions?

10 views
Skip to first unread message

Zoë Peterson

unread,
Jul 16, 2026, 5:43:48 PM (10 hours ago) Jul 16
to innosetup
Our installer supports three install modes: For All Users, For Current User, and Portable.  I also have it set up to streamline the process when installing an upgrade over the top of an existing install, so it doesn't need to prompt for the install directory or the tasks again.  As an example, here's what it looks like when there's an existing "All Users" install:



It has a similar button if you have a Current User install, and potentially shows both if you've done a Current User install before an All Users one.  For simplicity we don't show the option for a Current User install if there's already an All Users one, though that can be circumvented using /CurrentUser.

Currently this requires patching SetupLdr's behavior around the "Select Setup Install Mode" dialog.  Is that something that would be useful to other people?  I could submit my changes as a pull request, but I don't think they'd be generally usable as-is, since the behavior is hard-coded.

Regards,
Zoë Peterson
Scooter Software

Jernej Simončič

unread,
Jul 16, 2026, 6:04:08 PM (9 hours ago) Jul 16
to 'Zoë Peterson' via innosetup on [innosetup]

On Thursday, July 16, 2026, 23:43:37, 'Zoë Peterson' via innosetup wrote:


Currently this requires patching SetupLdr's behavior around the "Select Setup Install Mode" dialog.  Is that something that would be useful to other people?  I could submit my changes as a pull request, but I don't think they'd be generally usable as-is, since the behavior is hard-coded.

I did something similar in one of my installer without needing to patch anything – GIMP Help installer detects if GIMP was installed system-wide or for current user only (or both), and asks where the Help should be installed, then simply re-runs itself with /ALLUSERS or /CURRENTUSER parameter and an additional parameter that tells it to do the install this time.

 

-- 
< Jernej Simončič ><><><><>< https://eternallybored.org/ >


If the assumptions are wrong, the conclusions aren't likely to be very good.
       -- Burns's Balance

Bill Stewart

unread,
Jul 16, 2026, 6:15:25 PM (9 hours ago) Jul 16
to innosetup
On Thursday, July 16, 2026 at 3:43:48 PM UTC-6 Zoë Peterson wrote:

Our installer supports three install modes: For All Users, For Current User, and Portable.  I also have it set up to streamline the process when installing an upgrade over the top of an existing install, so it doesn't need to prompt for the install directory or the tasks again. 
...

It has a similar button if you have a Current User install, and potentially shows both if you've done a Current User install before an All Users one.  For simplicity we don't show the option for a Current User install if there's already an All Users one, though that can be circumvented using /CurrentUser.

Currently this requires patching SetupLdr's behavior around the "Select Setup Install Mode" dialog.  Is that something that would be useful to other people?  I could submit my changes as a pull request, but I don't think they'd be generally usable as-is, since the behavior is hard-coded.

Can you be more specific about the "this" ("currently this requires patching") -- what specifically are you changing? I'm not sure I understand why the default behavior is unsuitable or needs changing for your use case.

Zoë Peterson

unread,
Jul 16, 2026, 6:34:49 PM (9 hours ago) Jul 16
to inno...@googlegroups.com
On 7/17/2026 1:15 AM, 'Bill Stewart' via innosetup wrote:
> Can you be more specific about the "this" ("currently this requires
> patching") -- what specifically are you changing? I'm not sure I
> understand why the default behavior is unsuitable or needs changing
> for your use case.

The bulk of the changes are in the patch here:

https://gist.github.com/boramis/c7adead727b1a7a4e60393128d348318

The crux of it is:

1. Change the "Install Mode" buttons for "All Users" and "Current User"
to specifically say that it will be doing an upgrade and show the
existing install directories.
2. Add the "Portable" button to the "Install Mode" dialog along with a
matching /PORTABLE switch.

There's a bunch of scripting in our .iss to handle skipping pages and
doing the right thing, but the above is what required a patch.

I may be able to use Jernej's suggestion.  We were on an old version of
Inno Setup for quite a while and I got used to patching in changes we
needed, so extending the existing dialog seemed more obvious than
re-implementing the task dialog via scripting.

Zoë Peterson
Scooter Software

InnoSetupInstallMode.patch

Zoë Peterson

unread,
Jul 16, 2026, 6:41:40 PM (9 hours ago) Jul 16
to inno...@googlegroups.com
Oh, and it doesn’t show the “Current User” button in there’s already an “All Users” install.

> On Jul 17, 2026, at 1:35 AM, 'Zoë Peterson' via innosetup <inno...@googlegroups.com> wrote:
> --
> You received this message because you are subscribed to the Google Groups "innosetup" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to innosetup+...@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/innosetup/be9fdf5b-2520-49a4-af6b-f95adb6e1727%40scootersoftware.com.
> <InnoSetupInstallMode.patch>

Martijn Laan - Inno Setup

unread,
3:31 AM (1 minute ago) 3:31 AM
to innosetup
Hi,

Thanks for the ideas. Perhaps you can try and rephrase it as a more general suggestion?

I think what you're looking for is the option to add an extra configurable button to the install mode screen, which would pass an extra configurable parameter to Setup, and which only appears under configurable conditions?

How would that look like if you have to translate that to a set of new directives? Do note [Code] is not available to help with the configuration.


I also have it set up to streamline the process when installing an upgrade over the top of an existing install, so it doesn't need to prompt for the install directory or the tasks again

It already automatically doesn't prompt on updates by default.


For simplicity we don't show the option for a Current User install if there's already an All Users one

If there's already an All Users install, the entire Install Mode dialog shouldn't not appear, at least not by default.

Greetings,
Martijn
Reply all
Reply to author
Forward
0 new messages