Send to printer
of IE on your PC

Ever wanted to test your website in various versions of Internet Explorer?

It is possible to run Internet Explorer in standalone mode without having to over-write previous versions thanks to Joe Maddalone who came up with a way of achieving that in November 2003. Basically, Internet Explorer is run by exploiting a known workaround to DLL hell - which was introduced in Windows 2000 and later versions - called DLL redirection.

Manfred Staudinger perfected the standalone versions by adding IE version numbers to the title bar of the standalone browser window. Moreover, by removing the "IE" key in the registry subkey [HKLM\SOFTWARE\Microsoft\Internet Explorer\Version Vector] Internet Explore defaulted to respecting conditional comments based on the version number prebuilt in the program.

It is not difficult to follow the instructions and get any version of IE running in standalone along side other versions. Most of you probably know of evolt's archive of Internet Explorer which has them readily packaged in ZIP files. Now suppose you want to download them all. An installer that would conveniently automate the whole process would be great. Thanks to this comment for the idea.

 

Important Notes:

  • The installer was made to work with Windows XP. With a little bit of hacking it could run on Windows 2000 but this was not tested. See some of the comments below for ways to run Multiple IE on Windows 2000 (page 4).
  • The Developer tool bar from Microsoft WILL NOT work in IE6
  • Sometimes IE5, IE5.5 and IE6 crash unexpectedly. 
  • Microsoft supplemental EULA says : IF YOU DO NOT HAVE A VALID EULA FOR ANY "OS PRODUCT", YOU ARE NOT AUTHORIZED TO INSTALL, COPY, OR OTHERWISE USE THE OS COMPONENTS AND YOU HAVE NO RIGHTS UNDER THIS SUPPLEMENTAL EULA.
  • Update December 2007: A recent windows update broke the Multiple IE installation and unfortunately this means you'll have to reinstall Multiple IE to get it to work again. I haven't yet identified which update broke the installation.

Related Article:


 

Multiple IE is no longer maintained and there are no plans to continue maintaining it! Thanks and good luck!


Download Multiple IE installer (10.3MB)
Updated on 07/11/2006: (IE6) fixed cookies/sessions support+ AlphaImageLoader support
Updated on 30/03/2007: (IE4) The address bar is working! yay! 

 

Taming Your Multiple IE Standalones

Multiple versions of Explorer for Windows on a single computer have revolutionized CSS bug testing for websites, but sadly the different IE browser windows appear identical to the eye, potentially leading to confusion and testing mistakes. Also, Microsoft's proprietary Conditional Comments don't operate properly on these standalones, making advanced usage of CC's a guessing game. These problems have now been resolved! But first, a little background regarding the standalones.

What Are These Standalones?

When Joe Maddalone first came up with Multiple Version of IE in Windows XP Pro in November 2003, this was a great relief for web developers. Technically speaking, it was made possible by using a system feature which may be functionally described as a process specific subroutine library, for otherwise system wide shared .dll and .com modules. It is supported by the system scheduler from Win98 SE onwards and is triggered by an empty file with the name process.exe.local.

For Windows to allow several Explorer versions running side by side on one machine, this process specific subroutine library, in short  process library , must contain the starting module for the process (iexplore.exe), the trigger (iexplore.exe.local), and any required process specific dll's. For more details, see Joe Maddalone's consolidated info: Multiple IEs in Windows.

Get the conveniently prepared standalones themselves here.

Multiple Standalone Installer Now Availible! (Oct '06)   We no longer must manually install and modify the IE Standalones, because Yousif Al Saif of tredosoft.com has compiled IE3 thru IE6, along with all title markers and registry fixes, into a single easy installer package. It even comes with special files to keep PNG scripts working in IE6 for proper testing. Wow. Install IE7 from MS first, then go here for instructions. Way to go, Yousif!

What took so long?

One question bothers me: If Win98 SE (and the feature in question) was available as early as April 1999, why did the feature I refer to as the  process library  took more than 4 years to surface? In my opinion, it's partially because the Windows OS is lacking any concise description, and also because Microsoft seems to have obscured it by using at least three different names to designate this feature: Isolated Components, DLL/COM Redirection, and Side-by-side approach for implementing private DLLs.

The last one is to be found in The End of DLL Hell (Rick Anderson, Microsoft, January 2000). Anderson also mentions "using a unique version number" for implementing private DLLs, a different approach which was called later on Side-by-side Component Sharing, contributing still further to the confusion!

Anyway, we now have standalones for each version of Explorer back to version 4, and that's great, but they can be made even better.

Perfecting The Standalones

To enhance the usability of multiple IE's further, I would like to demonstrate 3 changes for versions IE 5.01, IE 5.5, and IE 6:

  1. Enable processing Cookies with your IE Standalones
  2. Add the IE version number to the title bar of the Standalone browser window (also for IE 4.01)
  3. Finally get Conditional Comments working in the IE Standalones

Cookies

Although this is the simplest of the three modifications here, it took a long time to surface. To the best of my knowledge it was M. Cain, who in May 2005 proposed it for the first time and it was brought to my attention by David Wilson only recently. It is done by adding a backlevel module to each  process library .

First download the file 3725.exe from Microsoft. You will find the page easily by searching for its FamilyID which is "6DEE32AB-B618-4FB3-9A45-CDD08162E167". The file description denotes it as "Win32 Cabinet Self-Extractor", but it should not (and will not apply anyway) be applied to your system.

Instead use WinZip (or an equivalent tool) and it will show you 7 files which are contained in 3725.exe. From these choose Wininet.dll to be extracted and put it into the folders of your IE standalones. This very same Wininet.dll (version 5.0.2614.3400, date April 14, 1999) applies to all of the standalones.

That's it - enjoy testing with cookies!

Version Labels

To achieve Modification #2 two things have to be done:
1. checking and possibly changing a registry string, and
2. adding a modified module to each  process library 

If the registry string in question, Window Title, exists in your registry, it will cause all your different Internet Explorer versions to display the same character string on the title bar. This character string comes from the Window Title string and its default value is, you guessed it, "Microsoft Internet Explorer". For some background information you may want to read How to Change the Internet Explorer Window Title on the Microsoft site.

In order to check for the Window Title string's existence, click the Start button, click Run, and type in "regedit.exe". This launches the registry editor, where you may then navigate to the Main key. It will be found under HKCU\Software\Microsoft\Internet Explorer\ where "HKCU" may be read as "HKEY_CURRENT_USER".

Once in Main, look carefully for a string called Window Title, and if there is one, right click it, and rename it to zWindow Title.

To enable the Version Labels for your IE 4.01 Standalone (for the hint I wish to thank Derek Ahmedzai), the procedure is very similar. This time you start with "HKLM", which means "HKEY_LOCAL_MACHINE", go for HKLM\Software\Microsoft\Internet Explorer\Main and again look for the Window Title string.

If there is none, right click Main, select "New", choose "String Value" for the data type, and rename the resulting "New Value #1" to Window Title.

Now you have a Window Title string anyway, right click it, and select "Modify". When the "Edit String" menue pops up, you can set the value data to "IE 4.01 (Microsoft Internet Explorer)" and click "OK". That's all you need for IE 4.01 !

Follow these instructions exactly to the letter, as for sure, the Registry Database is not designed for the "trial and error" approach. If you would like to change something on your own, you should at least have read and understood the Description of the Microsoft Windows registry beforehand.

To finally enable the Version Labels for your IE 5.01, IE 5.5, and IE 6.0 Standalone, it is also necessary to add a specially modified module (BROWSELC.DLL) to the  process library . The modification consists in replacing the string "Microsoft Internet Explorer" (which appears in the title bar) by "IE 5.01 (Microsoft Internet Explorer)", "IE 5.5 (Microsoft Internet Explorer)" and "IE 6.0 (Microsoft Internet Explorer)" respectively. Once those .DLL's are in place, the browser window top bar will proudly announce what IE version it is, dispelling all confusion.

The discussion assumes you have IE 7 as your primary or native browser and IE 6 is a Standalone version. Should you have IE 6 as the primary Explorer browser, leave it untouched, the lack of a version label in the title bar will indicate that it is IE 6 anyway.

To download the .DLL's, right click the links below, select "Save target as", and save into the folder that contains the IEXPLORE.EXE file for each of the standalones. In other words, those .DLL's are each specific to either IE 5.01, IE 5.5 or IE 6.0, and each must share the same folder with the primary .EXE file for each standalone browser version. All three DLL's have the same name (BROWSELC.DLL), so don't put them in the same folder at any time!

Repairing Conditional Comments

For details on the subject, go straight to the source and read About Conditional Comments on the Microsoft site. Some say that using this proprietary feature is a bad practice because CC's are non-standard, but basically it's just code that has been stuffed within an HTML comment, a comment internally labeled so that various IE versions may reach into that comment and pull out parsable code. If all browsers had something similar, bug fixing would be a whole lot more feasable in Opera and Mozilla.

Further, CC's do validate because to the validator and non-IE/Win browsers, a CC looks like a normal HTML comment and thus is ignored.

Most of the conditional comment behaviors may be restored to the standalones by performing a simple one time edit to your registry. It consists only of renaming a particular key, which currently says IE, so that it says zIE.

To do this, click the Start button, click Run, and type in "regedit.exe". This launches the registry editor, where you may then navigate to the desired registry key. The target key, called IE, may be found under HKLM\Software\Microsoft\Internet Explorer\Version Vector\. In some Windows versions the "HKLM" may appear as "HKEY_LOCAL_MACHINE"

Once in Version Vector, look for the key called IE, right click it, and rename it to zIE.

(If you are running a 64-bit version of Windows, I would like to get in touch with you, to figure out the correct procedure for changing the key. A "registry reflector" copies values forth and back between the above mentioned key and HKLM\Software\Wow6432Node\Microsoft\Internet Explorer\Version Vector\, which is used for 32-bit applications running on a 64-bit machine).

The next time Internet Explorer is started, the missing IE key will cause it to fetch needed information from other modules, where at least 4 slightly different character strings (containing version, subversion, build etc.) are available. The information found there will enable the standalones to function almost perfectly when presented with Conditional Comments. If you want to restore your OS to the previous registry state and browser behavior, simply rename the zIE key back to IE and restart Internet Explorer.

If you have never altered your registry before, be assured it is not dangerous, provided you follow these instructions exactly to the letter!. But, should you allow temptation to take control, and you rashly make other edits, Neither I nor Position Is Everything are responsible for what might happen!