View Single Post
Old 09-22-2013, 07:23 AM  
bigstar
FlashFXP Developer
 
bigstar's Avatar
 
Join Date: Oct 2001
Posts: 8,012
Default

I have done several tests and I have concluded that there were 3 issues.

* The first issue was fixed in build 2000 where if the shellexecute command that launches the installer with elevation failed with an ERROR_CANCELLED (user said no to the elevation prompt, or didn't have the admin password) it would try to launch the installer without elevation. My intent was to prevent closing FlashFXP if the user canceled.

* The second issue was caused by a mistake in my code where I failed to properly initialize the result value, depending on the specific flow it was possible for the result to remain undefined and this prevented FlashFXP from closing and this was fixed in build 2003.

* The third issue is a rat race, the installer performs a check to detect FlashFXP running before FlashFXP is able to exit.

I added a delay to the check within InstallAware calling the sleep() API, however I forgot that when you call an API in InstallAware all API calls are executed in a secondary thread and as far as I could tell had little or no effect. Since the detection routine is done via a custom DLL that I wrote to handle the detection I have taken the steps within the DLL to perform the detection and if true, wait a second and try again, this should give enough time to prevent the check from triggering during an auto update. (will be added to build 2006)

If any dialog is shown during a silent auto update then any of the remaining dialogs are also shown (installation progress, installation finished) and because they are shown the behavior of the auto update also changes and the option to launch FlashFXP becomes unchecked and the installer doesn't automatically close.

I will release this new build shortly.
bigstar is offline