Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I want to set IE to start with arguments every time launch it or he get invoked by an another process.

The argument is -nomerge

share|improve this question
    
I think you're stuck with the old trick of a shortcut. –  harrymc Oct 27 '09 at 9:02
    
not really, it work fine that way, i just want to make it the default when I start iexplorer.exe –  Revolter Oct 27 '09 at 12:19

7 Answers 7

up vote 0 down vote accepted
+150

Well-behaved programs will use ShellExecute / ShellExecuteEx to launch URLs rather than executing iexplore.exe directly (so that they launch whatever browser you've set as default). Therefore, you could search the registry for occurrences of iexplore.exe, and (you'll have to use your judgement here, I'm not going to list all cases) where it is referring to an executable path (but not to fetch its icon), add the argument you want. You'll also have to add the argument to all shortcuts which point to iexplore.exe, which there shouldn't be too many of - on the start menu and quick launch bar; maybe on the desktop.

share|improve this answer
    
okay i've posted the answer –  Revolter Dec 18 '09 at 2:19

Browse to this path HKEY_CURRENT _USER\Software\Microsoft\Internet Explorer\Main and set SessionMerging to 0

or Newer OSs: HKEY_CURRENT _USER\Software\Microsoft\Internet Explorer\Main and set FrameMerging to 0.

The registry file would look something like this:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"SessionMerging"=dword:00000000
"FrameMerging"=dword:00000000
share|improve this answer

I can't think of a good solution for your question which doesn't involve monkeying with iexplore.exe.

I haven't test the solution offered below (which frankly I find a bit extreme even if it might answer your post):

  1. Rename C:\Program Files\Internet Explorer\iexplore.exe as C:\Program Files\Internet Explorer\iexplore.orig.exe.

  2. Open notepad, paste this in, and save it as C:\Program Files\Internet Explorer\iexplore.bat

    @echo off
    "C:\Program Files\Internet Explorer\iexplore.orig.exe" -nomerge %*

  3. Using a batch file compiler, such as Quick Batch File Compiler or Batch File Compiler Professional, compile iexplore.bat to C:\Program Files\Internet Explorer\iexplore.exe

With this solution, "iexplore.orig.exe -nomerge" will run whenever iexplore.exe is invoked.

Some notes:

  1. You will need to repeat this procedure whenever Windows Update replaces iexplore.exe.
  2. You might need to carry out this procedure while booted in Safe mode.
share|improve this answer
    
Are you sure this works? I tried that, and it seems to me, that IE is checking whether name of its executable was changed and if it was, it won't execute. –  sYnfo Oct 31 '09 at 16:29
    
@sYnfo: This approach doesn't work then for IE8. These guys are too smart for us. –  harrymc Oct 31 '09 at 16:41
    
Well, I looked at disassembly and it looks nice & clean, maybe I (Or someone more skilled) would be able to circumvent that "protection". Although this solution probably wouldn't survive updates. –  sYnfo Oct 31 '09 at 16:53
    
Im not getting any valid answers –  Revolter Nov 3 '09 at 19:55
    
You can't monkey too much with IE. Microsoft has done its best to protect this program which used to be the front door for viruses. I and others in this forum have tried to challenge Microsoft and failed. There is no way to do it except to disassemble IE and change its programming, which will require a quite disproportionate effort. –  harrymc Nov 3 '09 at 20:02

There is a new registry setting for IE8 that appears to do the same thing as -nomerge. The new IE8 behavior that -nomerge defeats is a result of the process model change, and you can undo that with a registry setting. Create a DWORD value called TabProcGrowth in:

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main

The default setting is <absent>, you should first try 0 which will use the IE7-style process model. If that does what you want, then also try 1 which will give you some of the new features. Numbers greater than 1 may also be useful. More info is here.

Certainly you could replace iexplore.exe with iexplore.cmd or even a small program that executed the real iexplore.exe that you have hidden off somewhere, with new arguments. This poses a few problem, as Windows itself will clobber iexplore.exe with new versions and various protection mechanisms that come and go. I would definitely try the registry key first.

share|improve this answer
    
TabProcGrowth permit launching new tabs under a new iexplore.exe process. for my case, Im launching new processes, -nomerge allow iexplore.exe instances to run each in its own separate session. –  Revolter Oct 31 '09 at 8:41
    
Right, but the changes are related. It might be worth a try... –  DigitalRoss Nov 2 '09 at 22:26

Instead of fiddling with shareware, just use a compiled language and make a second binary. Name iexplore.exe to iexplore2.exe, drop this in the directory along with it, and away you go:

#include<windows.h>
#include<shellapi.h>

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR lpCmdLine,
                     int nShowCmd)
{
    ShellExecute(NULL,NULL,"iexplore2.exe","-nomerge",NULL,SW_SHOW);
    return 0;
}

I compiled a binary for you here. If you don't trust it, you can compile the above source yourself with any up to date Windows compatible C++ compiler.

As noted previously, a Windows update for IE will probably mess this up. So keep a copy of this binary elsewhere.

share|improve this answer
    
your solution don't differ from the .bat one, ans still not valid answer –  Revolter Nov 3 '09 at 19:54

Can you start it from a batch file?

iexplore.exe -nomerge
share|improve this answer
    
yes , no problems ... why ? –  Revolter Oct 27 '09 at 11:55
    
My mistake. I didn't see the line where you wanted anything that calls IE to get -nomerge. That was just an alternative to you launching it from a shortcut. –  MDMarra Oct 27 '09 at 11:59

Wouldn't that be the same as turning on the option to open links in a new window? The setting can be found on Tools->Internet Options->General Tab->Tabs->Settings:

alt text

share|improve this answer
    
While your solution will open IE8 links in a new window, it does not open those windows with new "sessions". You would still want to use the modified shortcut or registry method to disable Frame Merging. –  user34739 Apr 20 '10 at 15:37

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.