Monday 27 July 2009

PCA: The UAC of Windows 7?

There is probably a consensus now (possibly a strong one) that the release of Vista was troubled. The press mercilessly attached the operating system for compatibility issues and performance issues (especially on laptops). Part of the compatibility store for Vista was the much maligned User Account Control (UAC) dialog prompts. Theses "prompts" (dialog boxes asking the user if he or she was "sure" about an intended action) were widely reviled as they perceived as annoying and served little use. For a large percentage of users, once they figured out how to turn UAC off, the did (and rebooted). Simply put, UAC was a good idea, but it's implementation was poorly tuned.

Not technically speaking part of the UAC infrastructure, the Program Compatibility Assistant (PCA) was also introduced in Vista as designed to help resolve compatibility issues when installing applications. Like the UAC dialog security and "permission" prompts, the Program Compatibility Assistant will provide a dialog box to prompt a user if something does not go quite right with an application installation. From what I understand, PCA will play a significant role in application compatibility in Windows 7.

From researching the MSDN articles about Microsoft's PCA it appears that we have the following scenarios where we will see PCA prompts;


  • When a new directory is added under Program Files, and Windows does not detect an entry in the Add/Remove Program (ARP) control panel registry
  • When a user runs a setup program and as a result of the installation "completing", and Windows does not detect an entry in the Add/Remove Program (ARP) control panel registry
  • When a COM object is accessed that is also included in a special "Deprecated Component" register

Specifically, the Microsoft MSN documentation details the following areas where the Program Compatibility Assistant may alert the user;


  • Detecting Failures in Setup Programs
  • Detecting Program Failures under UAC
  • Detecting Program Failures While Trying to Launch Installers
  • Detecting Installers That Need to Be Run as Administrator
  • Detecting Legacy Control Panels That Might Need to Run as Administrator
  • Detecting Program Failures Due to Deprecated Windows Components
  • Detecting Unsigned Drivers on 64-Bit Platforms
  • Informing Users about Compatibility Issues with Known Programs at Startup

Given these wide and diverse scenarios, I expect to see a lot more of the PCA with Windows 7. Now, if we could only determine what application packages might cause PCA issues prior to installation. Hmmmm...

References:

Application Compatibility: Program Compatibility Assistant (PCA)
http://msdn.microsoft.com/en-us/library/bb756937.aspx


Aaron Stebner's WebLog
How to prevent the Program Compatibility Assistant from appearing on Windows Vista
http://blogs.msdn.com/astebner/archive/2007/05/17/2705372.aspx

No comments: