#Google Analytic Tracker


Apr 17, 2009

Windows 7 - Application Compatibility with Shims

One of the biggest concerns when user migrate from one OS version to a new version is program compatibility. Since I am not a Vista user, I don’t know what is would be like if I migrate from XP to Vista.

However, today, I learned a great tool that come with Window 7. It is called the Application Compatibility Toolkits. You should able to find this tool under the “Microsoft Application Compatibility Tools” folder.


Microsoft has come up with a lot of “Shim” to help old applications run in Windows 7.

In addition, Windows 7 has this mini-database that contains a great number of applications (5832 apps when I looked at the 6.1.7000 build) that have tested, and verified that can be run in Windows 7.

Here is an screenshot of the Shims Windows 7 has for “Command and Conquer – Red Alert 2”. It is interesting to the see the applications that Windows 7 team has chosen to test so far.  The shims are displayed on the right panel (i.e. EnulateSlowCPU, VirtualzeHKCRLite, etc…)


I bet the list will continue to grow before Windows 7 is released and afterward. However, if you happen to have an application that doesn’t run properly in Windows 7, you can run Standard User Analyzer tool to figure out what you need to get your application running.


Once you specified the execution path for your application, you can click the Migration menu item. You should see something like the following:


The analysis will show a list of suggested shims that you can apply to your application if you start your application.

There are 353 Shims (Compatibility Fixes) in the build 7000.


In addition, it comes with 46 Compatibility Modes, each contains a set of Compatibility Fixes you can apply to your application.


Once Windows 7 come out, we will see how good these shims really work.

For developers, one big reason why most of the programs failed to run in Vista, or possible Windows 7 is because they hardcoded Windows Version number check for enable/disable program features. It may not even run if the version is not correct.  MS suggests we should avoid checking windows version number when developing your applications. Another thing to note is that Windows 7 version number is 6.1, not 7. That’s because MS hopes user can run Vista (6.0) programs under Windows 7. So, be prepare to update your application to run in Windows 7!

No comments: