views:

46

answers:

2

Hi, I'm Adam.

I'm trying to use Adobe AIR 2's NativeProcess API to emulate the ApplicationUpdater but I'm encountering problems when I try to run the downloaded AppUpdater.exe file on computers with UAC (User Account Control) enabled.

When run without UAC enabled, the AppUpdater opens as usual and displays the standard Adobe replace dialog box. With UAC enabled, nothing happens at all.

Having run a few traces, it seems the problem arises when I call NativeProcess.start() - the code seems to stop running at this point, and does not run the following lines which exit the application in preparation for the AppUpdater to run.

I have added listeners for all of the possible events and error events that can be thrown, and added logging in each of them, but none of these are producing any output.

This issue only seems to affect installation executables (ones which windows warns will change settings on your computer). Calling java.exe -jar .... on the same computers in the same application works correctly.

I'm at a loss, so any help would be amazing!

A: 

adobe answer was http://kb2.adobe.com/cps/404/kb404888.html

but for real steps you should determine the application user privileges and determine UAC enabled, if yes - then warn end-user about it.

I'm expecting that you could do nothing with windows-thing from Adobe Air.

Eugene
Thanks for trying to help. Unfortunately we can't really ask all our customers to disable UAC every time they need to update our application!
adamk
A: 

After speaking to Adobe directly, I discovered that NativeProcess uses a windows API which is unable to elevate privileges which is why the installers wouldn't work. The workaround was to use File.openWithDefaultApplication which uses a different API that can elevate privileges, but this only works in a native-packaged AIR app (which was just fine for our app since it was already packaged in a native installer :))

adamk