Install Failure and Application Failure Automation for PCA

The Program Compatibility Assistant (PCA) is a new feature in Windows Vista that can makes older programs that have compatibility problems work better, in an automated manner. If PCA detects a known compatibility issue after the user has run an older program, it notifies the user of the problem and offers to apply solutions that will be effective before the user runs the program the next time.

PCA does not specifically look for the setup's failing due to version problems. The logic used by PCA is to detect if a setup did not complete successfully. It monitors a program detected as setup by Windows Vista and checks if the program registers an entry in Add or Remove Programs (ARP). If no entries are created in ARP then PCA concludes that the setup did not complete successfully and will wait for the setup program to terminate before displaying the UI. PCA depends on UAC feature in VISTA to know if a program is an installer. 

In real business scenario, sometimes it is required to automate the installation. In such cases, apply compatibility mode by setting up the registry key under ‘HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers’ with key name = ‘full path of the exe’ and string value = ‘WINXPSP2’ indicating the compatibility mode.

To fix an application failure, compatibility mode can be applied by setting a registry key under ‘HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers’ with key name = ‘full path of the exe’ and string value = ‘ElevateCreateProcess’ indicating the compatibility mode.