Microsoft’s Compatibility Administration Tool (CAT) is a new utility that lets you identify and fix potential compatibility problems with applications running under Windows XP. You can use the tool to identify the particular fixes that help Windows XP support incompatible applications, package the appropriate fixes, and roll them out to other Windows XP systems. I’ll describe how to use CAT in conjunction with one of the Application Compatibility Toolkit’s primary tools, QFixApp—the Quick Fix Application—to fix specific compatibility problems on individual machines.
Installing and running the tools
The first step in correcting an application compatibility issue under Windows XP is to install the Application Compatibility Toolkit. While a version of the toolkit program is available on the Windows XP CD-ROM, Microsoft has released version 2.6 since the release of Windows XP. This version, which is available for download from Microsoft, is markedly different from the original version distributed with Windows XP. For this article, I’ll be using this updated toolkit. To install this new version of the toolkit, download it from Microsoft, execute it, and accept all of the defaults.
QFixApp offers predefined fixes
Once you’ve installed the toolkit, you can run the QFixApp utility from C:\Program Files\Windows Application Compatibility Toolkit\applications\qfixapp.exe (Figure A). Older versions of the tool placed this utility on the Start Menu, but Microsoft chose not to put it there for this release.
Figure A |
![]() |
The QFixApp user interface |
QFixApp includes a number of predefined fixes to address problems commonly encountered by certain types of software. For example, because Windows 95 is not a multiuser operating system and provides very little in the way of system security, certain software packages that ran well under it have trouble running in the Limited User Access (LUA) space provided by Windows XP. Therefore, you can use QFixApp to give a malfunctioning program temporary access so it will run properly. Table A lists the prepackaged fixes available on the Layers tab in QFixApp.
Table A
|
QFixApp prepackaged fixes
Using QFixApp
The real power of QFixApp comes when you have problems running an application. CAT comes with a sample application that I’ll use for this example. Running C:\Program Files\Windows Application Compatibility Toolkit\demoapp\demoapp.exe starts the sample application and immediately generates an error indicating that the program in question must only be run on Windows 95 or 98. Most applications that are only supposed to run under one of these operating systems can be made to run under Windows XP as well. The error message indicates that the program has asked Windows to report back its version. The error occurred because Windows didn’t respond as the application required. To correct this, you need to force Windows to respond to this older version request.
To fix this sample problem, I’ll use QFixApp to force Windows XP to respond as Windows 98 when asked by this application. The steps are:
- Start QFixApp.
- Click the Browse button and browse the system until you locate the executable file for the app in question. In the case of the sample application, the path is the demoapp path listed above.
- Click on the appropriate compatibility layer, in this case the Win98 Layer fix, and click Run. The application will now run without generating this error. Other errors will be generated, but that’s a function of the demo program, and those errors can also be corrected.
- Click Create Fix Support to write the fix to the system compatibility database. The next time you run this application, you won’t get the error since the fixes generated by QFixApp will be loaded when the application is started.
- If you click the View Log button in QFixApp to view the QFixApp log file, you’ll see that it lists an entry each time one of the fixes included in the layer had to be called (Figure B).
Figure B |
![]() |
As you may be able to tell from this example, QFixApp is an extremely powerful utility that can make almost any Windows program function under Windows XP. A lot of trial and error will go into the process, but QFixApp can increase your XP functionality.
Multiple distributions with the Compatibility Administration Tool
One major drawback of QFixApp is its single-machine nature. The changes you make in QFixApp apply only to the machine on which QFixApp is running. But what happens if you have hundreds of machines that need fixes for your applications? This is where CAT comes into play. You access this utility from Start | All Programs | Windows Application Compatibility Toolkit | Compatibility Administrator.
A fix for every program
The latest version of the Compatibility Administration Tool (CAT) includes hundreds of fixes for almost any program. Are you having trouble running the 102 Dalmatians Activity Center under Windows XP? No problem! This utility has a fix for it. In fact, as of this writing, version 2.6 of CAT includes fixes for 1,688 programs.
The databases
CAT works on the concept of databases (Table B). In the left-hand side of the window are a number of options—System Database, Installed Databases, Per User Compatibility Settings, and Custom Databases.
Table B
|
Suppose you’ve used QFixApp to create a number of fixes for your Windows XP session. Now you want to roll these fixes out to other Windows XP machines without having to do a lot of extra work. CAT can do it for you. As an example, I’ll show you how to roll out the fixes for the sample application, as well as WordPerfect 8, to another Windows XP machine.
To begin, you need to create the database for these fixes. To do this, start CAT and take a look under Custom Databases (Figure C). You should see a new, untitled database.
Figure C |
![]() |
My fix for the sample application currently resides under Installed Databases (Figure D).
Figure D |
![]() |
The demoapp.exe file appears under the list of installed databases. |
To copy this fix into the custom database, right-click Applications under demoapp.exe custom database and choose Copy. Next, right-click the New Database entry and choose Paste. You’ll see the entry appear in the database.
To copy the fix for WordPerfect 8, expand System Database | Applications and scroll down the list until you find WordPerfect 8. Again, right-click the application entry and paste it into the custom database. When you’re done, you should see two entries under Applications in the custom database (Figure E).
Figure E |
![]() |
Both entries now appear in the custom database. |
The next steps involve renaming and saving the database. I like to rename databases with something more logical than “New Database(1).” So, for this example, I’ll right-click the new database, choose Rename, and name it “Sample and WordPerfect.” To save the database, click it and choose Save from the toolbar. I’ve named the database file the same as the database inside the file.
Machine preparation
To prepare the remote machines for the new database, you need to run the utility named C:\Program Files\Windows Application Compatibility Toolkit\Redist\act-pkg.exe. The act-pkg.exe file will update the remote system with the latest application compatibility information, which is essential to the proper operation of the tool. Some ways to perform this update without having to visit each workstation are:
- Running it from a log on script
- Running it using Group Policies
- Ghosting
- SMS
Once you’ve installed act-pkg, you need to put the database in a place where the new system can read it. I recommend placing it on a network volume and installing it from there rather than copying it to a local machine.
The final step in the process is to install the database to the remote machine. Again, I recommend handling this with a script or another automated method rather than visiting each individual machine. In my example, I have a server named slowe-p on which I’ve saved the database in a folder named c:\appfixes.
On the remote system, you need to install and register the database using the sdbinst.exe utility, which is found in Windows XP. For this example, to install my custom database, I used the following command from the Windows XP command prompt on the remote machine.
C:\>sdbinst “\\slowe-p\c$\appfixes\sample and wordperfect.sdb”
I’ve the put the command in quotes due to the spaces in the database file name.
When completed, a message indicates the process worked (Figure F). Now, when I run WordPerfect or the sample application on the remote machine, all of the fixes present on my original system will be loaded for that system as well.
Figure F |
![]() |
More than just an application fixer
In addition to simply fixing problems, you can use CAT to create processes that require users to visit a Web site when an application is launched or display messages that pop up when an application is run. You can learn about some of CAT’s features by visiting the Microsoft Knowledge Base Web site.