How to Run Legacy Applications Using Windows XP

Published: November 01, 2001 | Updated: April 11, 2003

By Todd Phillips

Abstract

Installing a new version of the Microsoft® Windows® operating system often poses a problem for the average user when it comes to supporting older applications. Microsoft Windows XP is an exception to this rule. Because of the extensive support for application compatibility within Windows XP, nearly every Windows program available can be run successfully on Windows XP.

The first part of this article is intended for an average user who needs to know how to get an old (legacy) application to run correctly on this new operating system. The remainder of the article addresses the needs of an information technology (IT) professional who is responsible for correcting an application compatibility issue for a number of computers..

Acknowledgements

Bill Shihara, Program Manager, Microsoft Corporation

Ryan Marshall, Program Manager, Microsoft Corporation

Michael Kessler, Technical Editor, Microsoft Corporation

On This Page

Introduction
Using the Compatibility Tab
Using the Program Compatibility Wizard
Diagnosing Compatibility Issues with QFixApp
Creating a Custom Compatibility Database with Compatibility Administrator
Using and Distributing Compatibility Databases
Summary
Related Links

Introduction

When moving to a new operating system you may be concerned about how well your older applications will perform—or whether they will run at all on the new platform. Microsoft understands this issue and has taken significant steps to improve the user experience on Windows XP. This article discusses the steps to take to get an old (legacy) application to run correctly on this new operating system.

For the Average User

The first section, Using the Compatibility Tab, describes the steps to take when adjusting the compatibility properties for a single application. It describes how to get an application to run correctly on your computer without worrying about distributing this solution to anyone else. The information in this section refers to technology that is built into Windows XP, and does not require any additional downloads.

For the IT Professional

The remainder of this article looks at the issue of getting an old application to run correctly on Windows XP from the perspective of an information technology (IT) professional who is responsible for correcting an application compatibility issue for a number of computers.

What You Will Learn

You will learn about the following processes for running legacy applications using Windows XP:

  • How to employ the QFixApp tool to find the precise compatibility fixes required to support your application on Windows XP. (For the average user.)

  • How to take the information discovered in QFixApp and use it to create a custom compatibility database in the Compatibility Administrator tool, which can then be distributed to other Windows XP computers. (For the IT Pro)

  • How to use the tools found in the Application Compatibility Toolkit. (For the IT Pro)

Note The Application Compatibility Toolkit can be found on the Windows XP CD-ROM, or downloaded from Microsoft's Web site at https://msdn.microsoft.com/library/default.asp?url=/nhp/Default.asp?contentid=28000911.

Topics Covered

Topics covered in this article include:

  • Using the Compatibility Tab

  • Using the Program Compatibility Wizard

  • Diagnosing Compatibility Issues with QFixApp

  • Creating a Custom Compatibility Database with Compatibility Administrator

  • Using and Distributing Compatibility Databases

Using the Compatibility Tab

This section discusses the compatibility fix process along with how to apply a compatibility mode to a single application. Issues that may arise from using the new visual themes incorporated into Windows XP are also addressed.

How a Compatibility Fix Works

Microsoft has included support for application compatibility in Windows XP in the form of compatibility fixes. These fixes are small pieces of code that intercept programmatic behaviors that are not supported on Windows XP and redirect those behaviors to supported methods.

Example: Looking for a Specific Version of Windows

In the case of an application that is hard-coded to look for one specific version of Windows (other than Windows XP), that program would receive what it considers incorrect information from Windows XP. There are a series of compatibility fixes that could be applied in this instance; which one you choose would depend on the version of Windows the application was designed for.

After selecting the appropriate compatibility fix that corresponds to the version of Windows required by the program, any time the program queries the operating system for version information, the compatibility fix would intercept the request and return the version information the program expects to receive.

Identifying Required Compatibility Fixes

An application that has one or more compatibility issues with Windows XP will often give some kind of error message that indicates the nature of the problem. Other times the application may simply fail to start, or it will terminate improperly after it is launched.

Error messages from the application can give you vital clues to the compatibility fix that will resolve the problem. The other issues may take a process of trial and elimination to identify the required compatibility fixes.

Use Compatibility Mode When Multiple Fixes Are Needed

Often an application will require more than one compatibility fix. In this case, Microsoft has grouped commonly used compatibility fixes into something called a compatibility mode. When trying to find a solution to a compatibility issue it is best to begin by applying a compatibility mode. Compatibility modes may be applied using the Compatibility tab found in the Properties sheet for the executable, as shown below in Figure 1.

Figure 1: Using the Compatibility tab to apply a compatibility mode to an application

Figure 1: Using the Compatibility tab to apply a compatibility mode to an application

To apply a compatibility mode to a single application

  1. Select the application executable by using My Computer or Windows Explorer to browse for it.

  2. Right-click the executable file for the program and select Properties from the context menu.

  3. Click the Compatibility tab to display the Property sheet as shown in Figure 1 above.

  4. Check the box beside Run this program in compatibility mode for, and then select the compatibility mode to apply. Click OK.

  5. Launch the application and test the effectiveness of the compatibility mode.

It is likely that you will need to repeat this process until you find the correct compatibility mode.

Using Visual Themes with Older Applications

If the compatibility modes do not solve the compatibility issue with your application, try the Display settings options on the Compatibility tab.

Windows XP incorporates new visual themes that might cause issues with older applications. If your application appears to run, but the display is corrupted or blank, try checking the option Disable visual themes. Old applications may benefit from the options to Run in 640x480 screen resolution or Run in 256 colors.

Using the Program Compatibility Wizard

This section discusses the Program Compatibility Wizard and how to use it to compensate for the various compatibility issues that might prevent a legacy application from running correctly on Windows XP.

The Program Compatibility Wizard

Windows XP includes another very simple approach to application compatibility: the Program Compatibility Wizard. This wizard makes it easy to compensate for the various compatibility issues that might prevent a legacy application from running correctly on Windows XP.

Essentially, the Program Compatibility Wizard is a graphical user interface (GUI) to the compatibility modes found in Windows XP, and is incorporated into the Help and Support Center.

To use the Program Compatibility Wizard

  1. Click Start, All Programs, Accessories and then click Program Compatibility Wizard.

    Caution Take note of the caution statement to not use this wizard to make older anti-virus, disk utilities, backup, or system programs run on Windows XP. These older programs rely upon kernel-level drivers to operate and may disrupt system stability if they are run. Also, do not use the wizard on applications that work on Windows XP.

  2. Click Next. You will be prompted to select the method to use when locating the program to be "fixed." The options are to: choose from a list of programs, use the program in the CD-ROM drive, or locate the program manually. Click one of the radio buttons to make your selection and then click Next.

  3. Select the program to be run with compatibility settings. The dialog box shown at this point will be determined by the selection method you chose in step 2. Click Next when you have selected the application.

  4. Select a compatibility mode for the program. If the program was designed for a specific version of Windows, choose the compatibility mode for that Windows version. You can also choose to not apply a compatibility mode. When done, click Next.

  5. Select from the list of three additional display settings for your application. You can apply any or all of the settings to configure the display for the program: 256 colors, 640x480 resolution, disable visual themes. Once you are done click Next.

  6. The wizard will display a summary of the settings you have chosen to apply. If everything looks correct, click Next to test the settings on the program. This will launch the program with the selected settings.

  7. The final page of the wizard enables you to select whether to permanently apply the compatibility settings, abandon the changes, or save them and run the wizard again to apply different settings.

Once you have completed the Application Compatibility Wizard the compatibility fixes will be applied to your program until you remove them or reinstall the application. You won't be required to perform any additional steps when running the program to benefit from the application compatibility technologies in Windows XP.

Diagnosing Compatibility Issues with QFixApp

This section discusses the different parts of the QFixApp tool and how to use them to determine which fixes are needed by an application so that those fixes can be distributed to other computers. Also addressed is how to create an XML file based on a custom compatibility database.

The QFixApp Tool

QFixApp is a GUI tool designed to aid in determining which compatibility fixes are required to resolve application compatibility issues for a specific executable file. QFixApp gives you direct access to the compatibility fixes included with Windows XP to test custom compatibility solutions for your legacy applications.

The main interface of the QFixApp tool displays two tabs:

  • The Layers tab displays the complete list of compatibility modes (layers) that can be applied, as shown in Figure 2 below.

  • The Fixes tab provides the entire list of compatibility fixes for Windows XP.

    Figure 2: The Layers tab of QFixApp is used to apply compatibility modes to an application

    Figure 2: The Layers tab of QFixApp is used to apply compatibility modes to an application

QFixAPP and Distributing Fixes to Other Computers

The QFixApp tool is best used to determine the precise mixture of compatibility fixes required by an application so that the fixes can be distributed to other computers. This process involves selecting the compatibility mode that best fits the program and then testing it to see if the program will run.

When the Compatibility Mode You Selected Works

Once you have a compatibility mode that seems to support the application correctly:

  1. Use the QFixApp log file to determine which individual compatibility fixes are being used and which can be discarded.

  2. Use the Fixes tab to select or deselect the compatibility fixes actually required by the application.

  3. Open the Advanced settings and complete the process by supplying matching information so that Windows XP can uniquely identify the program, even if it has the same name as some other application installed on the computer.

  4. You can compile this information into an .SDB compatibility database file for distribution.

Note: While QFixApp can be used to create custom compatibility database files for distribution, it can only compile a database for a single application. To distribute compatibility fixes for a number of applications simultaneously you need to use the Compatibility Administrator, which is described in following sections.

DEMOAPP.EXE—A Sample Application

The Application Compatibility Toolkit provides a sample application called DEMOAPP.EXE, which is located in the Demoapp folder under the Application Compatibility Toolkit folders. This sample application has a few intentional compatibility issues with Windows XP, such as requiring Windows 95, which will enable you to practice with the tools described in this article.

To apply a compatibility mode to DEMOAPP.EXE

  1. Launch QFixApp by clicking Start, All Programs, Application Compatibility Toolkit, and then click QFixApp.

  2. With the Layers tab selected, click the Browse button. Use the Select an executable dialog box to browse for the executable file to be "fixed." Select the file and click Open when you are done.

  3. If the application requires any command line parameters, enter them in the Command line text box.

  4. Click to select the compatibility mode to apply. (For the exercise with DEMOAPP.EXE you would know the program requires Windows 95 because when you execute the .EXE file it will report that it needs Windows 95.)

  5. Once you have selected the compatibility mode to try, click the Run button to test the compatibility mode. If the program appears to run normally you have the option of using QFixApp to create a permanent fix or continuing to refine the compatibility fixes required.

Creating a Custom Compatibility Database File With QFixApp

QFixApp has a limitation in that the compatibility fixes you select for an application are only in effect while you are running QFixApp.

To make compatibility fixes more permanent

  1. In the QFixApp Layers tab, show the Advanced options by clicking the Advanced button.

  2. Click the Create fix support button. This step will create a custom compatibility database file called (in the case of DEMOAPP.EXE) DEMOAPP.SDB located in the C:\Windows\AppPatch folder.

  3. When QFixApp has created the database file you will be prompted to install the file. This step enters the compatibility fix information into the system Registry so that Windows XP will know to use the compatibility database file when the program is launched. Installing the database file will ensure that the compatibility mode will be applied whenever the program is used.

Optimizing Application Performance

It is possible that applying a compatibility mode will cause a decrease in performance for the patched application. This may be caused by compatibility fixes within the compatibility mode that are not required by the application. You can optimize the performance of the application running with a compatibility mode by analyzing the QFixApp log file to see which compatibility fixes were actually used by the program. Once you have this information, you can disable the other compatibility fixes within the Windows 95 compatibility mode using QFixApp.

Once again using the DEMOAPP.EXE program as an example we can further define the application compatibility support for the program.

To fine-tune application compatibility support using QFixApp

Note It's assumed that you have already used the steps listed earlier in this section to run DEMOAPP.EXE with the Windows 95 compatibility mode)

  1. Click on the View Log button to open the QFixApp log file. (If you look through the output in the log file below, you will see that the fixes that were applied from the Windows 95 layer are: CorrectFilePaths, EmulateBitmapStride, EmulateCreateProcess, EmulateGetCommandLine, EmulateGetDiskFreeSpace, HandleRegExpandSzRegistryKeys, IgnoreLoadLibrary, MapMemoryB0000, and Win95VersionLie.


Log "C:\Program Files\Application Compatibility Toolkit\demoapp\demoapp.exe"

05/11/2001 13:25:11 EmulateCreateProcess 1 – [EmulateCreateProcess_ParseCommandLine] Illegal command line switch "C:\Program". 05/11/2001 13:25:11 EmulateCreateProcess 1 – [EmulateCreateProcess_ParseCommandLine] Illegal command line switch "Files\Application". 05/11/2001 13:25:11 EmulateCreateProcess 1 – [EmulateCreateProcess_ParseCommandLine] Illegal command line switch "Compatibility". 05/11/2001 13:25:11 EmulateCreateProcess 1 – [EmulateCreateProcess_ParseCommandLine] Illegal command line switch "Toolkit". 05/11/2001 13:25:11 EmulateCreateProcess 1 – [EmulateCreateProcess_ParseCommandLine] Illegal command line switch "2\demoapp\demoapp.exe". 05/11/2001 13:25:11 MapMemoryB0000 3 - [NotifyFn] Created block at 0xB0000. 05/11/2001 13:25:11 Win95VersionLie 3 - [GetVersionExA] Return Win95. 05/11/2001 13:25:11 EmulateGetCommandLine 1 - [GetCommandLineA] Changed "C:\PROGRA~1\APPLIC~1\demoapp\demoapp.exe " to "C:\PROGRA~1\APPLIC~1\demoapp\demoapp.exe ". 05/11/2001 13:25:11 Win95VersionLie 3 - [GetVersionExA] Return Win95. 05/11/2001 13:25:11 Win95VersionLie 3 - [GetVersionExA] Return Win95. 05/11/2001 13:25:11 Win95VersionLie 3 - [GetVersionExA] Return Win95. 05/11/2001 13:25:11 Win95VersionLie 3 - [GetVersion] Return Win95. 05/11/2001 13:25:11 Win95VersionLie 3 - [GetVersionExA] Return Win95. 05/11/2001 13:25:11 EmulateGetCommandLine 1 - [GetModuleFileNameA] Changed "C:\Program Files\Application Compatibility Toolkit\demoapp\demoapp.exe" to "C:\PROGRA~1\APPLIC~1\demoapp\demoapp.exe". 05/11/2001 13:25:11 EmulateBitmapStride 3 - [GetObjectA] width of scan lines from 426 to 428 05/11/2001 13:25:16 Win95VersionLie 3 - [GetVersionExA] Return Win95. 05/11/2001 13:25:22 IgnoreLoadLibrary 3 - APIHook_LoadLibraryA Allow(CVT32.DLL) 05/11/2001 13:25:26 EmulateGetDiskFreeSpace 3 - [GetDiskFreeSpaceA] Called. Returning <=2GB FREE SPACE 05/11/2001 13:25:27 EMULATEGETCOMMANDLINE 1 - [GETMODULEFILENAMEA] CHANGED "C:\Program Files\Application Compatibility Toolkit\demoapp\demoapp.exe" TO "C:\PROGRA~1\APPLIC~1\demoapp\demoapp.exe". 05/11/2001 13:25:27 CORRECTFILEPATHS 1 - GETFILEATTRIBUTESW CORRECTED PATH: C:\PROGRAM FILES C:\PROGRA~1 05/11/2001 13:25:27 CORRECTFILEPATHS 1 - CREATEDIRECTORYA CORRECTED PATH: C:\PROGRAM FILES\COMPATIBILITY DEMO C:\PROGRA~1\COMPATIBILITY DEMO 05/11/2001 13:25:27 CORRECTFILEPATHS 1 - CREATEDIRECTORYA CORRECTED PATH: C:\PROGRAM FILES\COMPATIBILITY DEMO\DEMOAPP C:\PROGRA~1\COMPATIBILITY DEMO\DEMOAPP

  1. Select the Fixes tab and click Clear to deselect the fixes associated with the Windows 95 layer. Instead, select only those fixes that were used. As you select the fixes, read the description associated with each in the Fix description box. For example, you will notice that the description for the EmulateBitmapStride specifies that it is only used with Windows 2000. Since you are not applying a fix to an application on Windows 2000, deselect the EmulateBitmapStride fix.

  2. When you have selected the remaining fixes from the list, click the Run button again.

  3. Choose to restart your computer later, and click Finish.

  4. Return to QFixApp and click the View Log button again. This time when you look through the output, you will see that only seven of the eight selected fixes were applied: CorrectFilePaths, EmulateCreateProcess, EmulateGetCommandLine, EmulateGetDiskFreeSpace, IgnoreLoadLibrary, MapMemoryB0000, and Win95VersionLie.

  5. Clear all of the fixes listed on the Fixes tab and select the seven compatibility fixes listed in the latest log file.

  6. Click the Run button to test DEMOAPP.EXE again. Let the application run to completion, choose the option to restart your computer later, and then click Finish.

  7. View the log file again in QFixApp. This time you should find that all seven of the compatibility fixes are being used. You are now ready to package this information in a custom .SDB database file for distribution.

Note QFixApp can be used to create a custom database file to distribute the compatibility fix information for this single application, but you will have better results and capabilities using the Compatibility Administrator tool instead.

To create a database file in QFixApp

  1. Make sure the application and compatibility mode or compatibility fixes are selected, and then click the Advanced button to expand the Advanced options. The Advanced options will display a list of file attributes that uniquely identify the application.

  2. Select as many of these as you need to correctly identify the program. Additionally, you can click the Add Matching File button to indicate associated files to help identify the application completely. Matching files can be added from any of the folders that contain files related to the application.

    These steps will help Windows XP to identify the application in cases where the main executable file has a common name such as SETUP.EXE.

    Important You do not need to uniquely identify the target executable file in QFixApp unless you intend to distribute the .SDB file containing the single fix made by QFixApp. The Windows Application Experience team strongly encourages you to use QFixApp to identify what fixes must be applied to an application and to use the Compatibility Administrator to create and manage the .SDB files that you deploy to other users.

    When you have added all of the necessary matching file information, have the fixes selected, and have specified the application path and name, you are ready to create the custom .SDB file.

  3. Create the database file by clicking the Create fix support button in QFixApp.

Creating an XML File Based on the Custom Compatibility Database

The final option available to users of QFixApp is the ability to create an XML file based on the custom compatibility database you have created. This can be useful if you have created a compatibility mode that would be useful to others, and you want to send it in to Microsoft. Microsoft will occasionally be distributing compatibility modes through the Microsoft Update service, and some of those compatibility modes will come from users.

The XML file that you generate using QFixApp can be distributed through Microsoft Update to become available for others to use with the Compatibility Administrator, which is described in the following section—Creating a Custom Compatibility Database with Compatibility Administrator.

To export compatibility fix information to an XML file

  1. Create a compatibility mode that resolves the compatibility issues with your application using all of the steps described earlier in this section.

  2. Click the Advanced button to display the Advanced options of QFixApp.

  3. Click the Create fix support button to compile the custom .SDB file.

  4. Click the Show XML button to display the dialog box listing the complete XML file containing all of the necessary compatibility fix information, as shown in Figure 3 below.

  5. Click the Save XML to File button to save this information to a text file. This file can be sent as an email attachment.

    Figure 3: Exporting compatibility fix information to an XML file

    Figure 3: Exporting compatibility fix information to an XML file

Creating a Custom Compatibility Database with Compatibility Administrator

This section discusses how the Compatibility Administrator tool works and presents the steps needed to create a custom compatibility database.

Compatibility Administrator

The Compatibility Administrator, shown in Figure 4 below, is another GUI tool from the Application Compatibility Toolkit that will assist in resolving compatibility issues with your programs. It can perform similar functions to QFixApp in that it can be used to identify and apply compatibility modes and fixes. Unlike QFixApp, however, Compatibility Administrator can be used to package a group of fixes for distribution to other Windows XP computers. This can be a vital link for supporting legacy applications during a migration to Windows XP.

Important The recommended process to follow when resolving application compatibility issues for Windows XP is to use QFixApp to find and identify the compatibility modes or fixes that will solve the problem with a single program, and then use that information in the Compatibility Administrator program to create or modify a custom compatibility database file.

Figure 4: Packaging a group of fixes for distribution to other Windows XP computers

Figure 4: Packaging a group of fixes for distribution to other Windows XP computers

File Matching, Fixes and the Compatibility Database

The Compatibility Administrator uses file matching information to identify individual applications, even if the executable file has the same name as another program. This ensures that only the identified application will receive the application fixes that have been assigned.

Once the compatibility fixes have been selected in the Compatibility Administrator they are added to an .SDB compatibility database file. This database file can contain the file matching information and associated fixes for multiple applications and can be easily deployed to numerous computers.

Creating a Custom Compatibility Database

It is possible to create, distribute, and apply multiple compatibility databases, and each database can contain compatibility fixes for multiple applications. This can reduce the complexity of creating compatibility solutions for several applications in your environment and then trying to maintain and distribute multiple compatibility databases for those applications.

To create a custom compatibility database

  1. Open the Compatibility Administrator tool by clicking Start, All Programs, Application Compatibility Toolkit and then click Compatibility Administrator. (Notice that the Compatibility Administrator opens with a new empty database loaded.)

  2. Click the Database menu and select Change Database Name. Rename the database to MyDb.sdb. (You can use any name you wish for this file). Then click the File menu and select Save to keep the change.

  3. To add compatibility fixes to the database for an application, click the Database menu and select Create an Application Fix. The Create an application fix dialog box will be displayed.

  4. Click the option to Apply Specific Compatibility Fix and then click Next.

  5. Type DemoApp as the name for the application, and then click Next.

  6. Select the file to create the compatibility fix for by entering the path and name of the executable file, or by browsing for the file. When the path and name of the executable are displayed, click the Next button.

  7. You determined the fixes to apply to DEMOAPP.EXE by using QFixApp. Select the following fixes that were determined to be necessary for Demoapp.exe: CorrectFilePaths, EmulateCreateProcess, EmulateGetCommandLine, EmulateGetDiskFreeSpace, IgnoreLoadLibrary, MapMemoryB0000, and Win95VersionLie. When these are selected, click Next.

  8. The next dialog box prompts you to add files that will be used to provide matching information to uniquely identify this application. For this exercise, click the Add File button and browse for the DEMOAPP.HLP file located in the same folder as DEMOAPP.EXE. (Note that you will have to change the extension type being displayed to All Files before you will be able to browse for the help file.) Click the OK button to add this file, and then click Next to proceed.

  9. On the final page of the wizard you have the opportunity to test the compatibility fixes that you have selected. Click the Test Run button to try out the settings before saving the changes. Once you have verified that the application works correctly with the selected compatibility fixes, click the Finish button to return to the Compatibility Administrator. The new compatibility fix is added to your custom database.

  10. Click the File menu and select Save to save the changes to the custom database.

Adding Other Application Compatibility Fixes

To add other application compatibility fixes to your custom database simply use the same procedures, with the exception that instead of using a new database, you would begin with this database that already contains compatibility fix information.

Using and Distributing Compatibility Databases

This section discusses the steps necessary to modify an existing database file, how to apply a database file so that it will be used by Windows XP, and includes some ideas for how to distribute a database.

Adding Information to a Custom Database

Creating a custom compatibility database is just the first step in using the Compatibility Administrator to resolve application compatibility issues in your networked environment. Once you have created a custom database you can add the compatibility and matching information for any other application in your network that will require a compatibility fix to operate on Windows XP.

Applying a Compatibility Database

Once you have successfully created a compatibility database it must be applied to the system to have any effect on the applications being fixed. Applying a compatibility database is a very simple process on Windows XP. The .SDB file extension is a registered file type in Windows XP, so all you have to do to register the database is run the file. This can be done by double clicking the file or by using the Run command on the Start menu.

SDBINST.EXE

To apply a compatibility database to Windows 2000, you need to use the SDBINST.EXE utility, which is included with the default installation of Windows XP.

The basic syntax of SDBINST.EXE is:

Sdbinst.exe [?][-q][-u][-g][-n] mydb.sdb | GUID | InternalFileName
-?    Displays the help text
-q   Quiet mode; all messages are suppressed
-u   Uninstall
-g{GUID} GUID of the database file
-n "name" The internal file name of the compatibility database
  • Quiet mode. The most useful switch for SDBINST.EXE is the quiet mode switch (-q) because it enables the command to be performed during a logon script without displaying any information for the average user to worry about.

  • Uninstall. The uninstall switch is normally not necessary because anytime you apply a new version of the same database, the old version is transparently uninstalled. The uninstall (-u) switch is included in case you would ever have to perform a forced removal of a compatibility database.

  • Name and GUID. In the event of a forced removal of the database, the name (-n "name") and the globally unique identifier (GUID) (-g GUID) switches can be used to uniquely identify the compatibility database to be uninstalled.

SDBINST.EXE can also be used on Windows XP when applying compatibility database files through scripting. This can be very useful if you want to deploy compatibility fixes throughout an organization without requiring user interaction.

Distributing a Compatibility Database

There are a number of possibilities when deciding to distribute a custom compatibility database to users within your organization. Some of the options include:

  • Email attachment. The custom database can be sent through email to the users who require the fixes. If users are running Windows XP they can simply choose to run the attachment.

  • Floppy disk. The "Sneaker Net" approach—copy the database file onto removable media and use that media to install the database on multiple machines. Actually, this is not a very desirable solution unless you only need to apply the database to a very few computers that are in close proximity.

  • Network folder. The users can manually install the compatibility database from a shared network location.

  • Logon script. This is one of the more useful approaches in a networked environment with centralized security. It won't require any interaction from the user and can be custom tailored for different groups of users based on the logon script they receive.

  • Push install. The custom database could be included in an installation package to be deployed through a push technology. Possible solutions include Microsoft Systems Management Server (SMS) or Group Policy within Active Directory domains.

Best Ways to Distribute Databases in a Large Networked Environment

The best ways to distribute compatibility databases within a large networked environment will be either push technologies or a logon script.

  • Push technology can be a wonderful solution if it is already in use within your network, but can be more complicated to establish.

  • The Logon script method is a great approach since it is simple to implement and easy to maintain.

Example: Logon Script Method

As an example of how a logon script might be used, consider the following example:

if not exist %systemroot%\apppatch\mydb.sdb sdbinst.exe -q \\server1\compat\mydb.sdb

Adding this line to the logon script for a group of users will cause the command to be executed each time the logon script is run. In this example

if not exist

logic test checks to see if the custom database has already been added to the system, and if has not then the SDBINST.EXE command will install the database from a shared network location.

Note The user must have READ permissions set for the network folder in order for this command to work.

Summary

Microsoft has incorporated application compatibility technologies into Windows XP to support the use of legacy applications. These technologies and tools can be accessed by using the Application Compatibility Wizard, or by setting the compatibility properties on the Compatibility tab of a program's Properties sheets.

The QFixApp tool enables you to find the specific compatibility fixes necessary to support a legacy application, and to apply those fixes to the program. The Compatibility Administrator tool enables you to take the information learned from QFixApp and enter the compatibility fixes into a custom database that can then be distributed to other Windows XP or Windows 2000 computers.

For the network administrator, the custom compatibility databases can be distributed in a number of ways, including logon scripts. Once database files have been distributed to other computers, they can be applied by running the file (on Windows XP) or by using the SDBINST.EXE utility.

See the following resources for further information: