How to Run Legacy Applications Using Windows XP

How to Run Legacy Applications Using Windows XP
Topics 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
Operating System
By Todd Phillips
Microsoft Corporation
Published: November 2001
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
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 Microsofts Web site at
http://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
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.
5.
Check the box beside Run this program in compatibility mode for, and then select the
compatibility mode to apply. Click OK.
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 kernellevel 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 wont 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
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 Its assumed that you have already used the steps listed earlier in this section to run DEMOAPP.EXE
with the Windows 95 compatibility mode)
1.
2.
3.
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"
4.
-------------------------------------------
5.
05/11/2001 13:25:11 EmulateCreateProcess 1 –
6.
[EmulateCreateProcess_ParseCommandLine] Illegal command line
switch
7.
"C:\Program".
8.
05/11/2001 13:25:11 EmulateCreateProcess 1 –
9.
[EmulateCreateProcess_ParseCommandLine] Illegal command line
switch
10.
"Files\Application".
11.
05/11/2001 13:25:11 EmulateCreateProcess 1 –
12.
[EmulateCreateProcess_ParseCommandLine] Illegal command line
switch
13.
"Compatibility".
14.
05/11/2001 13:25:11 EmulateCreateProcess 1 –
15.
[EmulateCreateProcess_ParseCommandLine] Illegal command line
switch
16.
"Toolkit".
17.
05/11/2001 13:25:11 EmulateCreateProcess 1 –
18.
19.
[EmulateCreateProcess_ParseCommandLine] Illegal command line
switch
"2\demoapp\demoapp.exe".
20.
05/11/2001 13:25:11 MapMemoryB0000 3 - [NotifyFn] Created block
at 0xB0000.
21.
05/11/2001 13:25:11 Win95VersionLie 3 - [GetVersionExA] Return
Win95.
22.
05/11/2001 13:25:11 EmulateGetCommandLine 1 - [GetCommandLineA]
Changed
23.
"C:\PROGRA~1\APPLIC~1\demoapp\demoapp.exe " to
24.
"C:\PROGRA~1\APPLIC~1\demoapp\demoapp.exe ".
25.
05/11/2001 13:25:11 Win95VersionLie 3 - [GetVersionExA] Return
Win95.
26.
05/11/2001 13:25:11 Win95VersionLie 3 - [GetVersionExA] Return
Win95.
27.
05/11/2001 13:25:11 Win95VersionLie 3 - [GetVersionExA] Return
Win95.
28.
05/11/2001 13:25:11 Win95VersionLie 3 - [GetVersion] Return
Win95.
29.
05/11/2001 13:25:11 Win95VersionLie 3 - [GetVersionExA] Return
Win95.
30.
05/11/2001 13:25:11 EmulateGetCommandLine 1 [GetModuleFileNameA] Changed
31.
"C:\Program Files\Application Compatibility
Toolkit\demoapp\demoapp.exe" to
"C:\PROGRA~1\APPLIC~1\demoapp\demoapp.exe".
32.
05/11/2001 13:25:11 EmulateBitmapStride 3 - [GetObjectA] width
of scan lines from
33.
426 to 428
34.
05/11/2001 13:25:16 Win95VersionLie 3 - [GetVersionExA] Return
Win95.
35.
05/11/2001 13:25:22 IgnoreLoadLibrary 3 - APIHook_LoadLibraryA
36.
Allow(CVT32.DLL)
37.
38.
39.
05/11/2001 13:25:26 EmulateGetDiskFreeSpace 3 [GetDiskFreeSpaceA] Called.
Returning <=2GB FREE SPACE
05/11/2001 13:25:27 EMULATEGETCOMMANDLINE 1 [GETMODULEFILENAMEA] CHANGED
40.
"C:\Program Files\Application Compatibility
Toolkit\demoapp\demoapp.exe" TO
41.
"C:\PROGRA~1\APPLIC~1\demoapp\demoapp.exe".
42.
05/11/2001 13:25:27 CORRECTFILEPATHS 1 - GETFILEATTRIBUTESW
CORRECTED PATH:
43.
C:\PROGRAM FILES
44.
C:\PROGRA~1
45.
46.
05/11/2001 13:25:27 CORRECTFILEPATHS 1 - CREATEDIRECTORYA
CORRECTED PATH:
47.
C:\PROGRAM FILES\COMPATIBILITY DEMO
48.
C:\PROGRA~1\COMPATIBILITY DEMO
49.
50.
05/11/2001 13:25:27 CORRECTFILEPATHS 1 - CREATEDIRECTORYA
CORRECTED PATH:
51.
C:\PROGRAM FILES\COMPATIBILITY DEMO\DEMOAPP
52.
C:\PROGRA~1\COMPATIBILITY DEMO\DEMOAPP
53.
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.
54.
When you have selected the remaining fixes from the list, click the Run button again.
55.
Choose to restart your computer later, and click Finish.
56.
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.
57.
Clear all of the fixes listed on the Fixes tab and select the seven compatibility fixes listed in the
latest log file.
58.
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.
59.
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 Windows Update service, and some of those compatibility
modes will come from users.
The XML file that you generate using QFixApp can be distributed through Windows 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.
If your browser does not support inline frames, click here to view on a separate page.
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.
If your browser does not support inline frames, click here to view on a separate page.
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 wont 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 programs 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.
Related Links
See the following resources for further information:

Resolving Application Compatibility Issues with QFixApp and CompatAdmin at
http://www.microsoft.com/windows/appcompatibility/default.mspx

How to Troubleshoot Program Compatibility Issues in Windows XP at
http://www.microsoft.com/WindowsXP/pro/using/itpro/compatibility/troubleshoot.asp

How to Use Windows Application Compatibility Mode at
http://www.microsoft.com/WindowsXP/pro/using/itpro/compatibility/apcompatmode.asp

How to Use Qfixapp.exe in Windows XP and Windows Server 2003 at
http://www.microsoft.com/windows/appcompatibility/default.mspx

How to Use the Compatibility Administration Tool in Windows XP at
http://www.microsoft.com/WindowsXP/pro/using/itpro/compatibility/compatadmin.asp

Windows XP Application Compatibility Technologies at
http://www.microsoft.com/windowsxp/pro/techinfo/planning/appcompat/default.asp

For more information on the Application Compatibility Toolkit see
http://msdn.microsoft.com/library/default.asp?url=/nhp/Default.asp?contentid=28000911.

For more information on the Designed for Windows Logo Program see
http://www.microsoft.com/winlogo/default.mspx.

For the latest information about Windows XP, see the Windows XP Web site at
http://www.microsoft.com/windowsxp/default.asp
The information contained in this document represents the current view of Microsoft Corporation on the
issues discussed as of the date of publication. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot
guarantee the accuracy of any information presented after the date of publication.
This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR
IMPLIED, IN THIS DOCUMENT.
Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights
under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval
system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or
otherwise), or for any purpose, without the express written permission of Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property
rights covering subject matter in this document. Except as expressly provided in any written license
agreement from Microsoft, the furnishing of this document does not give you any license to these patents,
trademarks, copyrights, or other intellectual property.
2001 Microsoft Corporation. All rights reserved. Microsoft, Windows, and Windows NT are either registered
trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.
Other product and company names mentioned herein may be the trademarks of their respective owners.
Microsoft Corporation One Microsoft Way Redmond, WA 98052-6399 USA