On Mon, Oct 27, 2014 at 2:20 PM, Justin Mclean <jus...@classsoftware.com>
wrote:

> Hi,
>
> > I don’t remember what it was first time I ever ran the Installer, but
> lately (on Mac) it seems to offer the last
> > folder I chose, or the parent of that folder.  Could that be leading more
> > folks to pick folders that aren’t writeable?
>
> 99%+ of these errors are on windows. It is possible to get the issue on
> OSX you have to go out of your way to select a folder that isn't writable.
> (eg /System)
>
> My guess is that windows people like to put programs into their "Program
> Files" directory  which only Administrators can write to on modern versions
> of windows.
>
>
Adobe Flash Builder gets installed into C:\Program Files\Adobe\Adobe Flash
Builder 4.7 (64 Bit)\  That comes with a 'sdks' folder with 4.6.0 and 3.6.0
pre-installed. Naturally, folks want to add new SDKs into this directory to
keep all the SDKs organized.

The problem is that the C:\Program Files directory is writable only with
Admin access by default.

One way to address this issue is to inform the user that the selected
directory is not writable.  I believe this is the fix Neil has submitted.

A more correct way would be to detect the current user's UAC level and
alerting the user that UAC needs to raised to install in the selected
directory.  [1]

The best way would be show the windows UAC dialog prompting the user to
allow the write operation.  I don't think it is possible with AIR
directly.  So, we will need to write a small script and invoke it via a
nativeprocess.  The elevated UAC will be valid until the Installer is
closed.

The problem would be if the user does not have the Admin username/password
which they will have to enter to proceed with the installation.  If they
don't have it, we should direct them to use a lower privileged directory
such as c:/temp or c:/users/{username}/AppData/Roaming/{FlexInstallationDir}

Of course, we can chose to skip all this by automatically selecting a
default directory such as
c:/Users/{username}/AppData/Roaming/{FlexInstallationDir}  This path should
be pretty straightforward to retrieve from the AIR apis.

Thanks,
Om

[1]
http://www.itwriting.com/blog/196-programmatically-detecting-whether-uac-is-enabled.html

Reply via email to