Tech Off Thread

3 posts

Forum Read Only

This forum has been made read only by the site admins. No new threads or comments can be added.

Undo auto program compatibility in Vista

Back to Forum: Tech Off
  • User profile image
    sushovande

    I was attempting to do a manual install of flash player for firefox 2.0.0.3 on Vista. For some reason, I think it did not go too well. When I was about to click the final 'finish' button on the installer - the following window popped up:

    Image Hosted by ImageShack.us

    So now, what do I do to UNDO the compatibility settings? On right-clicking and seeing the property page for compatibility, no checkboxes are checked (that is - it seems as though no settings are applied).

    How do I understand whether it is running as a compatibility app? How do I convince Vista not to run it in compat mode?

    Please help.

  • User profile image
    Chris Jackson

    This PCA dialog detects that the target application (Firefox) called the CreateProcess API to create a process that requires elevation (either through installer detection or manifest). This makes sense, since you are actively trying to install something. From a development point of view, you should call ShellExecute(Ex) instead. Regardless, what we have set is the ElevateCreateProcess shim for this executable. That means that if you call CreateProcess and it returns ERROR_ELEVATION_REQUIRED, then we will try again, this time prompting for elevation.

    So, this compatibility mode doesn't really hurt anything, and will help you out the next time Firefox calls CreateProcess on another exe that requires elevation. Other than that, it won't interfere with anything - presumably you aren't calling CreateProcess much in normal web browsing, so you won't even run this shim code much.

    If you want to see what we are doing, you can go to:

    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

    The path and layer should be listed.

    Why don't we give this particular PCA dialog an opt-out button? Because we are 100% certain that the fix for ERROR_ELEVATION_REQUIRED when calling CreateProcess is to shim with ElevateCreateProcess, and the fix is very low overhead.

  • User profile image
    sushovande

    Thanks a lot for clearing it up. Firefox is indeed listed in that registry key with the following data: ELEVATECREATEPROCESS

    If it bothers me, I know what to delete. Smiley

    [Note: sorry to bump this thread back up]

Conversation locked

This conversation has been locked by the site admins. No new comments can be made.