lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


RJP Computing writes:
> Well most of that works except the file association.
> There is only one registry key for that and it is not
> modifiable by a non-admin. So what should we do about that?
> ...
> Do other languages have installers that work on a
> non-admin system (i.e. Python)?

I checked out the ActivePython[1] installer just now.  Two things are noteworthy:

(1) It installed as a non-admin.  It even installed file associations as "per
user" as described in http://support.microsoft.com/kb/257592 .

(2) In the list of installation features, one of the options is named "Register
as Default Python".  This feature installs global settings such as PATH vars and
file associations.  It is enabled by default for both admins and non-admins but
can be disabled (e.g. perhaps the user normally wants to use a different
interpreter instead).

> This will make the installer much more difficult
> to code and maintain.

I don't believe you.  :)

> I have an idea on how to test to see if an administrative user is installing.

I think InnoSetup's IsAdminLoggedOn() will do.  This may require extra care on
Vista concerning privilege elevation (a search for "IsAdminLoggedOn Vista" in
the InnoSetup newsgroup archives brings up some discussions on this).

Something I've seen other installers do (e.g. the Cygwin installer[2]) is
provide an explicit option to install either for "All Users" or for only the
"Current User" (Just Me).  So, you don't necessarily need to check for
IsAdminLoggedOn().  In fact, it may be more correct to provide this as an
explicit option in case an administrator wants to install only to one's own
account and not for all users.  Checking IsAdminLoggedOn() might still be useful
though to catch a non-admin attempting to install globally (assuming that would
remain correct on Vista).

[1] http://www.activestate.com/store/activepython/download/
[2] http://www.cygwin.com/setup.exe