I'm using some app called pgModeler and it's current version provides an installer based on QT installer framework. The problem with that installer on Windows is that it installs start menu entries per-user only and registers the app itself per-user only as well. That's a problem for people like me using an explicit admin-user for system maintenance vs. a non-admin user for daily work. The important thing is that really two different user names are used (Administrator
vs. tschoening
) instead of Windows' default behaviour to restrict one user using UAC only.
Before switching to QT installer framework, Inno Setup has been used and that has some concept of distinguishing between administrative and system-wide vs. per-user installation. The switch simply was to execute the installer as admin or not, everything else worked automatically and is not the case anymore with QT.
What I did find for QT as well are pre-defined constants to different paths e.g. for the start menu:
UserStartMenuProgramsPath
AllUsersStartMenuProgramsPath
What I did NOT find yet is if there's some automatic mode like Inno provided? Something like a simple setting telling the installer to prefer system-wide start menu and stuff always, really everything which the installer is able to distinguish. Or do developers need to build proper paths on their own? Like in the following example:
component.addOperation("CreateShortcut", "@TargetDir@/pgmodeler.exe", "@StartMenuDir@/pgModeler.lnk"
vs.
component.addOperation("CreateShortcut", "@TargetDir@/pgmodeler.exe", "@AllUsersStartMenuProgramsPath@/@StartMenuDir@/pgModeler.lnk"
In the case of the latter, how does one switch between per-user and system-wide Programs and Features
in the control panel as well?
Thanks!