Getting Incompatible Applications to Run

If you try to run an application that isn't written for Windows XP, Windows 2000, or Windows NT, the application might need help to run properly. The following sections give you some background information on application compatibility technologies in Windows XP and Windows 2000, and also show you how to quickly get earlier applications running.

Application Compatibility Background

All Microsoft 32-bit operating systems share the same application programming interface (API), the Win32 API. Any Win32 application runs natively in any 32-bit Microsoft operating system with no performance-hindering emulation or translation required. In addition, 16-bit Windows 3.1 and MS-DOS applications can be run under Windows XP, Windows 2000, and Windows NT in a Virtual DOS Machine (VDM), provided they don't directly access the hardware or use Virtual Device Drivers (VxDs).

Windows XP, Windows 2000, and Windows NT provide a somewhat different environment for Win32 applications than do the Windows 95/98 or Windows Me operating systems. API calls are strictly enforced (reducing the impact of poorly behaved applications), memory is managed more efficiently, and the registry is different. The net result is that if you take a typical Windows 95 or Windows 98 application and try to launch it on Windows XP or Windows 2000, it won't run properly without some help.

Microsoft provides this help through two methods, Application Compatibility Updates and Compatibility Modes, which are available in Windows XP and through a registry change in Windows 2000 Service Pack 2 and later.

Application Compatibility Updates are fixes for specific applications that have trouble running under Windows XP or Windows 2000. When an affected application is installed or run, Windows uses the fixes provided by Application Compatibility Updates to subtly modify the way Windows responds to the application.

This involves trapping certain API calls that don't work on Windows 2000 or Windows XP and translating them to appropriate Windows 2000 or Windows XP calls. It might also involve telling the application that it's running on Windows 95 (or another version), or modifying the way Windows presents its memory interface to the application so that it appears like the Windows 95/98 or Windows Me memory manager. Application fixes are applied when the application's setup or run executable (.EXE) is launched and permit the affected applications to run properly with almost no loss in performance (because only a very small number of API calls are translated).

Compatibility Modes are groups of fixes applied to an application together to simulate the desired operating system. For example, in Windows XP, if you launch an application in Windows 95 Compatibility Mode, Windows XP watches for 50 of the most common Windows 95-specific calls and deals with them so that the application believes it's running in Windows 95. Compatibility Modes are available in Windows XP, and are also partially available in Windows 2000 Service Pack 2 and later (if you enable it, as described later in this chapter).

Antivirus programs, system utilities, and backup programs should be updated for the version of Windows you're running. Using a Compatibility Mode for these types of programs isn't recommended.

Table 25-6 summarizes the compatibility of Windows 2000 and Windows XP with applications written to a variety of Windows versions (note that the ability of Windows XP to run earlier applications is better than that of Windows 2000, even with Compatibility Modes enabled).

Table 25-6. Application support in Windows 2000 and Windows XP

Intended OS Compatibility level to expect

Windows XP

Native support.

Windows 2000

Native support.

Windows NT 4

Most applications run without issues, but some make use of application compatibility fixes or Compatibility Modes.

Windows 98 and Windows Me

Most applications run without issues, but many use application compatibility fixes or Compatibility Modes.

Windows 95

Most applications run, but a large number rely on application compatibility fixes or Compatibility Modes to run.

Windows 3.x

Many applications run in Windows Win16 Virtual DOS Machine (VDM), as long as the applications don't directly access the hardware or make use of Virtual Device Drivers (VxDs), in which case they won't work.

MS-DOS

Many applications run in a VDM, as long as the applications don't directly access the hardware, in which case they won't work.

Application Compatibility Updates aren't installed by default on computers running Windows 2000 Server. Use Windows Update to install Application Compatibility Updates.

Running Legacy Applications

To run a legacy application, use the following procedure:

  1. Install and launch the program as you normally would. If necessary, Windows automatically applies application fixes to Win32 applications with known Windows XP issues (if running Windows XP) or starts a VDM for running Windows 3.1 or MS-DOS-based programs.
  2. If the application doesn't work properly and it's a 32-bit Windows program, check Windows Update and the software manufacturer's Web site to determine whether there are program updates or compatibility fixes available for the affected program.
  3. Use the Program Compatibility Wizard to launch the program in a Compatibility Mode that corresponds to a Windows version known to work with the application. The Program Compatibility Wizard in Windows XP is located on the Start menu under the Programs\Accessories folder. Alternatively, right-click the program's executable file, choose Properties from the shortcut menu, click the Compatibility tab, and choose the appropriate Compatibility Mode, as shown in Figure 25-33.

Figure 25-33. Setting the Compatibility Mode for an application in Windows 2000 Service Pack 2 or newer.

Windows 2000 doesn't include the Program Compatibility Wizard. If you download the latest Application Compatibility Update from the Microsoft Web site, the Compatibility tab is automatically enabled. If you don't install this update, you can enable the Compatibility tab (shown in Figure 25-33) for applications by typing regsvr32 %systemroot%\apppatch\slayerui.dll at a command prompt and then restarting the computer (Windows 2000 Service Pack 2 or later must be installed for this to work). This solution isn't as powerful as that of Windows XP, but it can still be quite useful.

Application Compatibility Toolkit

The Application Compatibility Toolkit is a free set of programs Microsoft provides to network administrators and software developers for use in testing and fixing incompatible applications. If you need to test and fix legacy applications and deploy the fixes to a large number of clients, and there aren't any application fixes available for the applications, consider using these tools to provide users with automatic application fixes. This eliminates the need for the user to manually specify a Compatibility Mode, and it also allows the administrator to fine-tune fixes so only the necessary fixes for the particular application are applied, increasing performance and reliability.

The Application Compatibility Toolkit is available for both Windows XP and Windows 2000. Two tools in the toolkit worth mentioning are the Qfixapp and Compatadmin tools (the latter is available only for Windows XP). The Qfixapp program allows you to individually apply fixes from the roughly 200 fixes supported by Windows XP (Windows 2000 supports roughly 100). When used to apply and test fixes one at a time, Qfixapp allows you to fine-tune the compatibility solution for an application. Compatadmin.exe allows you to bundle together multiple application fixes (that you determined by careful use of Qfixapp) into a single file that you can then distribute to clients, who simply need to double-click the file to update their systems.

The Application Compatibility Toolkit is available for download from http://www.microsoft.com.



Microsoft Windows 2000 Server Administrator's Companion
Microsoft Windows 2000 Server Administrators Companion
ISBN: 0735617856
EAN: 2147483647
Year: 2003
Pages: 320

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net