|
|
I think I've mentioned this before, but to install to ProgramFiles the
installer needs to perform a UAC elevation.
Giving the user a choice to install for themselves, or for all users is
fine, but as it is, the all users option is a bit painful for a couple
reasons:
* The install will fail if they select to install in program files.
Normally, this is where one would expect a program to install. Every
single other application out there installs just fine to program files.
The installer does not contain an embedded manifest to require UAC
elevation. This works for a single-user installation (somewhat
non-standard, but a valid option) but does not work for a system-wide
install. Per-user installation I think is more the exception than the rule.
* Windows does not provide a means to execute an MSI as an
administrator. This is rather frustrating to the end user. I was finally
able to get around this omission by running the installer from an
administrative command prompt. But lets face it, if this is someone's
first experience with POV-Ray, they may indeed turn their nose up at it
and walk away.
There is a solution:
If you can get the HWND of the Next button, after the user selects the
install for all users option, you can send the button a BCM_SETSHIELD
message, which will place a shield on the next button, and cause the
program to ask for elevation when the user selects it.
The only requirement for this message to work is to make sure the .msi's
embedded manifest includes the reference for comctl32 version 6
This is the link to the relevant info on UAC:
http://msdn.microsoft.com/en-us/library/bb756990.aspx
Thanks!
Post a reply to this message
|
|
|
|
Mike Raiford wrote:
> Giving the user a choice to install for themselves, or for all users is
> fine, but as it is, the all users option is a bit painful
I second that. However, it has already been discussed for a while
and at least the installer is now rather clear about what happens.
The default case works for new users, and people who generally care
about where programs are installed are probably those who know how
to execute an MSI with administrator privileges via command line.
Maybe it would be useful to explicitely mention this technique in
the warning message about required administrator privileges.
What I never quite grasped is the strong reluctance to provide the
installer in EXE format like 99% of all other consumer level apps.
Is it just to save 100 KB of extractor overhead?
The BCM_SHIELD solution also sounds nice but it would depend on
the selected target directory and require event handling of the
radio button (typically installer code is executed after the
next button is clicked and values are then read from the page).
Post a reply to this message
|
|