Windows XP
Windows Vista
Windows 7
Windows Azure
Windows Server
Windows Phone
EPL Standings
Windows XP

Understanding Application Compatibility : Determining Whether a Program Is Compatible with Windows XP, Understanding Compatibility Mode

8/10/2012 4:26:58 PM
Most new software programs are certified as Windows XP–compatible, meaning that they can be installed and run without mishap on any Windows XP system. But what about older programs that were coded before Windows XP was released? They can be a bit more problematic. Because Windows XP is based on the code for Windows 2000—which was in turn based on Windows NT—programs that are compatible with those operating systems will probably (although not definitely) be compatible with Windows XP. But the real problems lie with programs written for Windows 9x and Me. Windows XP—even Windows XP Home—uses a completely different code base than the old consumer versions of Windows, so it’s inevitable that some of those legacy programs will either be unstable while running under Windows XP, or they won’t run at all.

Why do such incompatibilities arise? One common reason is that the programmers of a legacy application hard-wired certain data into the program’s code. For example, installation programs often poll the operating system for its version number. If an application is designed for, say, Windows 95, the programmers might have set things up so that the application installs if and only if the operating system returns the Windows 95 version number. The program might run perfectly well under any later version of Windows, but this simplistic brain-dead version check prevents it from even installing on anything but Windows 95.

Another reason incompatibilities arise is that calls to API (application programming interface) functions return unexpected results. For example, the programmers of an old application may have assumed that the FAT (file allocation table) file system would always be the standard, so when checking for free disk space before installing the program, they’d expect to receive a number that is 2GB or less (the maximum size of a FAT partition). But FAT32 and NTFS (NT file system) partitions can be considerably larger than 2GB, so a call to the API function that returns the amount for free space on a partition could return a number that blows out a memory buffer and crashes the installation program.

These types of problems might make it seem as though getting older programs to run under Windows XP would be a nightmare. Fortunately, that’s not true because the Windows XP programmers did something very smart: Because many of these application incompatibilities are predictable, they gave Windows XP the capability to make allowances for them and so enable many older programs to run under Windows XP without modification. In Windows XP, application compatibility refers to a set of concepts and technologies that enable the operating system to adjust its settings or behavior to compensate for the shortcomings of legacy programs. This section shows you how to work with Windows XP’s application compatibility tools.

Determining Whether a Program Is Compatible with Windows XP

One way to determine whether an application is compatible with Windows XP is to go ahead and install it. If the program is not compatible with Windows XP, you might see a dialog box similar to the one shown in Figure 1.

Figure 1. You might see a dialog box such as this if you try to install a program that isn’t compatible with Windows XP.

At this point you could click Continue (in some dialog boxes, the button is named Run Program), but this is a risky strategy because you can’t be sure how the program will interact with Windows XP. This approach is riskiest of all when dealing with disk utilities, backup software, antivirus programs, and other software that requires low-level control of the system. It’s extremely unlikely that Windows XP would ever allow such programs to run, but you should always upgrade such products to Windows XP–compatible versions. A much safer route is to click Cancel to abort the installation and then visit the vendor’s website or the Windows Update site to see whether a Windows XP–friendly update is available. (You can often get the company’s web address by clicking the Details button.)


Where does the information in these dialog boxes come from? In the %SystemRoot%\AppPatch folder, Windows XP has a file named Apphelp.sdb that contains messages such as the one shown in Figure 5.5 for all known applications that don’t have compatibility fixes (discussed later in this section). The .sdb files aren’t text files, so opening them with Notepad or WordPad will not allow you to read any of these stored messages.

A better approach is to find out in advance whether the program is compatible with Windows XP. The most obvious way to do this is to look for the Designed for Windows XP logo on the box. For older programs, check the manufacturer’s website to see whether the company tells you that the program can be run under Windows XP or if an upgrade is available. 

What if you’re upgrading to Windows XP and you want to know whether your installed software is compatible? The easiest way to find out is to use the Upgrade Advisor tool, which is available on the Windows XP Professional CD. (The Windows XP Home CD doesn’t have the Upgrade Advisor.) Insert the Windows XP Professional CD and, when the Welcome to Microsoft Windows XP screen appears, click Check System Compatibility. Run through the Advisor’s dialog boxes until you get to the report on system compatibility. This report will list software that doesn’t support Windows XP and possibly software that needs to be reinstalled after the Windows XP setup has finished.

Understanding Compatibility Mode

To help you run programs under Windows XP, especially those programs that worked properly in a previous version of Windows, Windows XP offers a new way to run applications using compatibility layers. This means that Windows XP runs the program by doing one or both of the following:

  • Running the program in a compatibility mode This involves emulating the behavior of previous version of Windows. Windows XP can emulate the behavior of Windows 95, Windows 98, Windows Me, Windows NT 4.0 with Service Pack 5, or Windows 2000.

  • Temporarily changing the system’s visual display so that it’s compatible with the program— There are three possibilities here: setting the color depth to 256 colors; changing the screen resolution to 640×480; and disabling Windows XP’s visual themes.


Windows XP and Microsoft often use the terms compatibility layer and compatibility mode interchangeably, depending on which compatibility tool you’re using. In some cases, the emulations of previous Windows versions are called operating system modes.

These are the broad compatibility layers supported by Windows XP. As you’ll see a bit later, Windows XP also offers fine-tuned control over these and other compatibility settings. For now, however, you have two ways to set up a compatibility layer:

  • Right-click the program’s executable file or a shortcut to the file, click Properties, and then display the Compatibility tab in the property sheet that appears. To set the compatibility mode, activate the Run this Program in Compatibility Mode For check box (see Figure 2), and then use the list to choose the Windows version the program requires. You can also use the check boxes in the Display Settings group to adjust the video mode that Windows XP will switch to when you use the program.

    Figure 2. In the property sheet for an executable file, use the Compatibility tab to set the compatibility layer for the program.

  • Run the Program Compatibility Wizard by selecting Start, All Programs, Accessories, Program Compatibility Wizard. Use the wizard’s windows to select the program’s executable file, choose a compatibility mode, set the visual options, and then test the program.

Other -----------------
- Remote Collaboration with Microsoft NetMeeting : Using the Whiteboard & Sharing Programs
- Remote Collaboration with Microsoft NetMeeting : Exchanging Files in NetMeeting & Using the Chat Feature
- Remote Collaboration with Microsoft NetMeeting : Placing NetMeeting Calls
- Remote Collaboration with Microsoft NetMeeting : Configuring NetMeeting
- Sending and Receiving Faxes (part 3) - Receiving Faxes
- Sending and Receiving Faxes (part 2) - Sending a Fax
- Sending and Receiving Faxes (part 1) - Installing, Configuring the Fax Service
- Using HyperTerminal for Modem-to-Modem Connections : Connecting to a Remote System & Performing File Transfers
- Using HyperTerminal for Modem-to-Modem Connections : Creating a New HyperTerminal Connection
- Getting Your Modem to Dial Voice Calls for You : Setting Phone Dialer’s Options & Quick Connections with Speed Dial
- Configuring Windows Firewall to Allow Incoming Internet Calls & Placing an Internet or Network Call
- Getting Your Modem to Dial Voice Calls for You : Placing a Voice Call
- Migrating Your Applications from XP to Windows 7
- Migrating from XP to Windows 7 : Installing Windows 7
- Migrating Applications from Windows XP to Windows 7
- Migrating from XP to Windows 7 : Windows 7 Upgrade Advisor
- Surfing the Web Securely (part 3) - Blocking Pop-Up Windows
- Surfing the Web Securely (part 2) - Enhancing Online Privacy by Managing Cookies
- Surfing the Web Securely (part 1) - Adding and Removing Zone Sites
- Keeping Intruders Out of Your System : Turning Off File and Printer Sharing, the Messenger Service
Most view of day
- Microsoft Exchange Server 2013 : Creating new mailboxes (part 2) - Languages
- Microsoft Exchange Server 2013 : Creating new mailboxes (part 4) - Automating mailbox settings,Ready-to-go custom attributes
- Windows Server 2008 R2 high-availability and recovery features : Installing and Administering Failover Clustering (part 4) - Verifying cluster configuration using the Cluster Validation Wizard
- Microsoft Word 2010 : Creating Desktop Publishing Documents - Adding Page Backgrounds (part 2) - Add or Remove a Page Border , Add Page Color
- Microsoft Exchange Server 2010 : Completing Transport Server Setup (part 1) - Configuring Transport Limits
- SQL server 2008 R2 : Creating and Managing Stored Procedures - Using Input Parameters
- CorelDRAW X5 : Font Etiquette - Using Fonts with Style and Appropriateness
- Microsoft Lync Server 2013 : Deploying Lync Online - Configuring Lync-to-Phone, Creating a SIP URI Dial Plan
- Microsoft Dynamics Ax 2009 : RunBase Framework Extension (part 3) - Adding Property Methods, Adding Constructors
- Backup and Restore of Microsoft Lync Server 2010 : Restore Processes
Top 10
- Windows Server 2012 : DHCP,IPv6 and IPAM - Exploring DHCP (part 3) - Creating IPv4 DHCP Scopes
- Windows Server 2012 : DHCP,IPv6 and IPAM - Exploring DHCP (part 2) - Installing DHCP Server and Server Tools
- Windows Server 2012 : DHCP,IPv6 and IPAM - Exploring DHCP (part 1)
- Windows Server 2012 : DHCP,IPv6 and IPAM - Understanding the Components of an Enterprise Network
- Microsoft OneNote 2010 : Using the Research and Translate Tools (part 3) - Translating Text with the Mini Translator
- Microsoft OneNote 2010 : Using the Research and Translate Tools (part 2) - Translating a Word or Phrase with the Research Pane
- Microsoft OneNote 2010 : Using the Research and Translate Tools (part 1) - Setting Options for the Research Task Pane, Searching with the Research Task Pane
- Microsoft OneNote 2010 : Doing Research with Linked Notes (part 2) - Ending a Linked Notes Session, Viewing Linked Notes
- Microsoft OneNote 2010 : Doing Research with Linked Notes (part 1) - Beginning a Linked Notes Session
- Microsoft OneNote 2010 : Doing Research with Side Notes (part 3) - Moving Side Notes to Your Existing Notes
Windows XP
Windows Vista
Windows 7
Windows Azure
Windows Server
Windows Phone
2015 Camaro