UAC Virtualization Prevention?

I have a VB6 application that I have been selling for over 12 years. Sometimes I have users who find it difficult to run the application. The data is written to / My documents, so nothing happens except the installation files (EXE, etc.) in C: \ Program Files (or C: \ Program Files (x86)).

To fix their problem - run the application even if it is displayed, and then display the task manager, view the processes, right-click my application process and uncheck UAC Virtualization. Then I repair them repair and everything is in order.

Why does my process fall under UAC virtualization and how can I prevent this? I also use InstallShield 2010 Professional to create the installation, I'm not sure if this is related to the installer or the application itself.

+5
source share
1 answer

To prevent virtualization, add a manifest to the application. If you say "Inverter" or "requireAdministrator", you will no longer receive virtualization. I assume that asInvoker will be better for you, as the application works great without promotion.

You can just put foo.exe.manifest in the same folder as exe, or paste it, which has some tricky things, for example, make the manifest a multiple of 4 bytes. This question describes some of the details of the attachment.

+9
source

All Articles