In its twenty-plus years of productive use, Microsoft Windows has gone through many versions, experienced many changes, witnessed ongoing introductions of new interfaces and technologies and had its fair share of legacy application compatibility issues. With Windows Vista, the introduction of a new driver model prevented older Windows applications from running on the new operating system. This change not only blocked Vista upgrades for many items of hardware, from audio devices to printers, but it also contributed to slow adoption by customers using XP.
Windows 7 uses the same driver model that was introduced with Vista's release to manufacturing on Nov. 8, 2006, and by now, the vast majority of hardware devices run on both operating systems. Issues with software are more subtle and often depend on requirements for specific dynamic link libraries (DLLs), programming interfaces or even direct access to hardware, which Windows hasn't allowed since the DOS and Windows 95/98 era.
Solve Windows 7 application compatibility issues using recommended settings
Sometimes, when solution providers install a program on Windows 7, an error message window similar to the one below (Figure 1) appears on the desktop:
Figure 1 – When trying to load an incompatible program inside Windows 7, this message is what appears instead of the program window.
When that message appears, you can use Windows 7's built-in troubleshooting tool. Instead of simply double-clicking the .exe or .msi file to install directly, right-click the filename and select "Troubleshoot Compatibility" from the resulting pop-up menu. A window like this one (Figure 2) will appear on the desktop:
Figure 2 – After you right-click "Troubleshoot compatibility" inside Windows Explorer for an .exe (or other executable file), this is what pops up.
First select "Try recommended settings." Choosing this option installs the program using the troubleshooter's built-in default settings. In many cases, installation will complete successfully, and the program will work properly based solely upon what the troubleshooter knows.
If that automated solution doesn't solve your customer's application compatibility issues, repeat the right-click launch method, then select the "Troubleshoot program" option instead. This produces a window labeled "What problems do you notice?" (Figure 3) where you can report issues that occurred when you tried to run the program.
Figure 3 – When you choose "Troubleshoot program," you can check one or more of these options to guide the wizard's next compatibility attempts.
In this window, you can report issues related to Windows versions, improper display or graphics behavior, requests for additional permissions or other problems not included in the list. By checking one or more of the boxes on the screen, the troubleshooter will return to its original settings for the program so you can try again. Simply click "Next" and the troubleshooter will use those settings and re-install the problem program. In many cases, this will produce successful results.
When this approach fails, solution providers should follow one of the following three avenues for determining what is causing the application compatibility issues — preferably in the order listed here:
1. Use your favorite search engine and enter a string like "MyLegacyApp Windows 7 compatibility" or "MyLegacyApp Windows 7 compatibility issues." Of course, you'll need to use the name of a real program instead of this contrived example. Often, you'll find reports from others who've encountered the same difficulties and have figured out how to solve them.
2. When you right-click on the .exe or .msi file for the problem program, you can select the Properties entry at the bottom of the pop-up menu instead. The Properties window (Figure 4) includes a Compatibility tab that offers options related to those seen earlier in the Compatibility Troubleshooter check boxes (mostly Windows versions and display settings), plus quite a few more.
Figure 4 – The "Compatibility" tab is where you can experiment with various settings to learn which combination will work for the legacy program.
You can work your way through the various Windows versions as the compatibility mode pull-down menu illustrates (Figure 5):
Figure 5 – Windows version options are pretty comprehensive, as this pull-down list shows.
Solution providers can also work their way through the other check box items shown in Figure 4, which are designed to help manage how the program handles graphics on a Windows 7 desktop. Usually, if you can't find an answer on the Internet, you'll be able to grope your way to a workable solution through repeated trial and error when experimenting with the settings.
3. If none of your attempts are successful, you can always try to run the program inside a free, Microsoft-supplied Windows XP virtual machine (VM), known as Windows XP Mode (XPM), as long as the machine in question is running the Windows 7 Professional, Ultimate or Enterprise edition. Other versions of Windows 7 don't support XPM, but you can always try different VM technologies instead, such as those from VMware or VirtualBox. If the PC is running an appropriate version of Windows, grab a copy of XPM from the Microsoft Virtual PC pages. In many cases where the other options fail, a VM will allow older programs to run on Windows 7.
If all attempts to resolve the application compatibility issues fail and the program still won't work on Windows 7, you may have to inform your customer that their legacy app has outlived its usefulness. In that case, it's time to start looking for (or building) a suitable replacement.
ABOUT THE AUTHOR
Ed Tittel is a regular contributor to numerous TechTarget websites and also blogs three times per week on Windows Enterprise Desktop topics. His most recent Windows book is Microsoft Windows 7 in Depth, to which he contributed nine chapters.