我想将 IE 设置为每次启动时都带参数或者他被另一个进程调用。
论点是-合并
答案1
行为良好的程序将使用ShellExecute
/ShellExecuteEx
来启动 URL,而不是iexplore.exe
直接执行(这样它们就会启动您设置为默认的任何浏览器)。因此,您可以在注册表中搜索 的出现情况iexplore.exe
,并且(您必须在这里使用您的判断力,我不会列出所有情况)它指的是可执行路径(但不是为了获取其图标),添加您想要的参数。您还必须将参数添加到指向 的所有快捷方式iexplore.exe
,这些快捷方式不应该太多 - 在开始菜单和快速启动栏上;也许在桌面上。
答案2
我想不出一个不涉及操作 iexplore.exe 就能解决您的问题的好方法。
我还没有测试下面提供的解决方案(坦率地说,即使它可能回答你的帖子,我也觉得有点极端):
重命名
C:\Program Files\Internet Explorer\iexplore.exe
为C:\Program Files\Internet Explorer\iexplore.orig.exe
。打开记事本,粘贴并另存为
C:\Program Files\Internet Explorer\iexplore.bat
@echo off
"C:\Program Files\Internet Explorer\iexplore.orig.exe" -nomerge %*使用批处理文件编译器,例如快速批处理文件编译器或者批处理文件编译器专业版,编译
iexplore.bat
为C:\Program Files\Internet Explorer\iexplore.exe
有了这个解决方案,“iexplore.orig.exe -nomerge”将在每次iexplore.exe
调用时运行。
一些说明:
- 每当 Windows 更新替换 iexplore.exe 时,您都需要重复此过程。
- 您可能需要在安全模式下启动时执行此过程。
答案3
浏览到此路径
HKEY_CURRENT _USER\Software\Microsoft\Internet Explorer\Main
并设置SessionMerging
为 0
或较新的操作系统:
HKEY_CURRENT _USER\Software\Microsoft\Internet Explorer\Main
并设置FrameMerging
为 0。
注册表文件看起来就像这样:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"SessionMerging"=dword:00000000
"FrameMerging"=dword:00000000
答案4
不用摆弄共享软件,只需使用编译语言并制作第二个二进制文件即可。将其命名iexplore.exe
为iexplore2.exe
,将其放在与其一起的目录中,然后就可以了:
#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;
}
我为你编译了一个二进制文件这里。如果您不相信,您可以使用任何最新的与 Windows 兼容的 C++ 编译器自行编译上述源代码。
如前所述,Windows 的 IE 更新可能会搞乱这一点。因此请在其他地方保留此二进制文件的副本。