Porting applications to Windows Vista

From Yggenyk
Jump to: navigation, search

Program Compatibility Assistant

This Program Compatibility Assistant information is stored in the registry, look for the name of the EXE file in

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Persisted

If the application has a manifest with a Compatibility section stating it supports Windows 7 (<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>), the Program Compatibility Assistant PCA, won't be active.

The Windows Vista and Windows Server 2008 Developer Story: Application Compatibility Cookbook

Application Compatibility Additional Resources

Microsoft Application Compatibility Toolkit

Application Verifier

Application Verifier uses the key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution

to take control over the application when it starts.

Programming against UAC

When your permission or password is needed to complete a task, UAC will alert you with one of the following messages:

  1. Windows needs your permission to continue
  2. A program needs your permission to continue
  3. An unidentified program wants access to your computer
  4. This program has been blocked

WARNING .exe with manifests for Vista might give Blue screen on XP !!!


Watch this video to learn to embed manifests in applications to avoid Vista auto detecting what kind of application it is.


Watch this video to learn how to run an application without Admin Rights and only require Elevation when necessary.


Use this tool to check what manifests is inside your .exe file.


UAC and network shares

Services is isolated in Session 0

MT.EXE Versions!

Folder and registry changes in Vista and Vista x64

Locating Debug Symbols

Add the environment variable:

_NT_SYMBOL_PATH=SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols

Full syntax off _NT_SYMBOL_PATH:

Registry Virtualization

Installer issues (MSI)

Control Panel Items

Default Programs in Vista

If you need a test environment you can run Windows Vista for free without activating for 120 days

Run Windows Vista for free without activating for 120 days

id=siteTree