Tip: To Disable Virtualization

Embedding Manifest to Disable Virtualization in Windows Vista

This will disable the virtualization for your application.

On a Vista machine, this manifest can be used for security requirements for an application. For example, on Vista, applications are not allowed to write into "Program Files" or Windows directories.

If requestedExecutionLevel is not set to true, the Registry and file virtualization will be turned on. The program will be writing to "Program Files," but it's really writing to C:\Users\<username>\AppData\Local\VirtualStore\Program Files. The Registry redirects HKEY_LOCAL_MACHINE\Software to HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\<Application Registry Keys>.

To disable the virtualization, you need to create a Manifest file and add the manifest file in the application build events. The Manifest file disables the virtualization in Vista for your application.

Right-click the project--> click the properties-->. On the left-side menu, you need to click the compile menu-->. In the Compile menu, you have this Build Events. When you click the build events, you will have a Post-build event command line; below that, you have a test box.

Here is the link for the manifest file: http://msdn.microsoft.com/en-us/library/bb545961.aspx.

uiAccess needs to be set to false and the level should be asinvoker.

<security>
   <requestedPrivileges>
      <requestedExecutionLevel level="AsInvoker" uiAccess="false"/>
   </requestedPrivileges>
</security>

Virtualization

Before adding the following line of code in that post build command line text box, you need to find the path of the MT.exe file. Usually, it will be in "C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\MT.exe". Otherwise, please search and find the its path.

To build and embed the manifest file to connect to the application automatically, you need to add the following code in the post-build event of the application and keep this manifest file in the application path.

"Path of the MT.exe"
   -manifest "$(ProjectDir)[application name].exe.manifest"
   -outputresource:"$(TargetDir)$(TargetFileName)";#1


About the Author

Jeya Kumar

I am working as s Seniour software Engg. in L & T infotech.I am having 4+ years experience in windows and web development.

Comments

  • There are no comments yet. Be the first to comment!

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Live Event Date: August 20, 2014 @ 1:00 p.m. ET / 10:00 a.m. PT When you look at natural user interfaces as a developer, it isn't just fun and games. There are some very serious, real-world usage models of how things can help make the world a better place – things like Intel® RealSense™ technology. Check out this upcoming eSeminar and join the panel of experts, both from inside and outside of Intel, as they discuss how natural user interfaces will likely be getting adopted in a wide variety …

  • Where the business performance of their mobile app portfolios are concerned, most companies are flying blind. While traditional application portfolios are held to all kinds of ROI measure, the investment plan for mobile apps -- increasingly the more crucial bet -- is made by guesswork and dart-throwing. This interactive e-book investigates how mobile is driving the need for app and portfolio measures unlike any we saw in the days of web. Good mobile analytics must deliver leading indicators of user experience …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds