Internet explorer 基于处理器体系结构编辑/安装注册表文件(.reg)
我创建了一个注册表文件,该文件安装了URL警报协议的一个键,这样当用户在任何浏览器中单击我们的web应用程序中的某个相关链接时,该链接将在Internet Explorer中打开。 这很有效。Internet explorer 基于处理器体系结构编辑/安装注册表文件(.reg),internet-explorer,registry,x86-64,registrykey,Internet Explorer,Registry,X86 64,Registrykey,我创建了一个注册表文件,该文件安装了URL警报协议的一个键,这样当用户在任何浏览器中单击我们的web应用程序中的某个相关链接时,该链接将在Internet Explorer中打开。 这很有效。 问题是,客户要求在32位下安装IE的注册表项。意味着,无论用户的处理器架构是什么(x86、x64),注册表必须安装为使用32位下的IE。现在我无法设置用于设置程序文件路径(32位)或程序文件路径(x86)(64位)的条件变量 下面是注册表项条目: [HKEY_CLASSES_ROOT\IEFrmOB]
问题是,客户要求在32位下安装IE的注册表项。意味着,无论用户的处理器架构是什么(x86、x64),注册表必须安装为使用32位下的IE。现在我无法设置用于设置程序文件路径(32位)或程序文件路径(x86)(64位)的条件变量
下面是注册表项条目:
[HKEY_CLASSES_ROOT\IEFrmOB]
@="\"URL:Alert Protocol\""
"URL Protocol"="\"\""
[HKEY_CLASSES_ROOT\IEFrmOB\DefaultIcon]
@="\"iexplore.exe,1\""
[HKEY_CLASSES_ROOT\IEFrmOB\shell]
[HKEY_CLASSES_ROOT\IEFrmOB\shell\open]
[HKEY_CLASSES_ROOT\IEFrmOB\shell\open\command]
@="cmd /v /k set \"myvar=%1\" & set myvar=!myvar:IEFrmOB:=! & start \"\" /B \"!ProgramFiles!\\Internet Explorer\\iexplore.exe\" !myvar! & exit"
您似乎使用cmd从下面的代码启动IE进程:
"!ProgramFiles!\\Internet Explorer\\iexplore.exe
如果我们使用bat命令启动32位IE,我建议您可以在cmd命令中添加架构判断命令,如下所示:
您可以将上述判断代码添加到注册表中并对其进行测试。代码如下:
@="cmd /v /k set \"myvar=%1\" & set myvar=!myvar:IEFrmOB:=! & IF "%PROCESSOR_ARCHITECTURE%"=="x86" (set IEfolder="PROGRAMFILES") else (set IEfolder="PROGRAMFILES(X86)") &start \"\" /B \"%IEfolder%\\Internet Explorer\\iexplore.exe\" !myvar! & exit"
但我不确定当我们调用x86 IE时,如果您的操作系统是64位的,Windows操作系统只会启动32位IE。因为IE11可以用两个进程(32位和64位)同时启动。
如果上述方法不起作用,您可以检查IE设置以修改IE流程:
@="cmd /v /k set \"myvar=%1\" & set myvar=!myvar:IEFrmOB:=! & IF "%PROCESSOR_ARCHITECTURE%"=="x86" (set IEfolder="PROGRAMFILES") else (set IEfolder="PROGRAMFILES(X86)") &start \"\" /B \"%IEfolder%\\Internet Explorer\\iexplore.exe\" !myvar! & exit"