diaosi888 2018-12-09 14:08 采纳率: 33.3%
浏览 2153
已结题

webbrowser如何在64位环境下调用32位的IE

1.C#的程序是64位生成的,因为某些插件需要用64位打包


2.使用pageoffice因为某些原因必须需要用到32位IE浏览器调用本地32位的office(office版本因为项目原因不能更换)


所以现在的问题是,能不能在64位的环境下调用系统32位IE浏览器,可以的话问题解决

  • 写回答

3条回答 默认 最新

  • Johan. 博客专家认证 2018-12-16 14:07
    关注

    正巧我遇到过这样的场景,在业务中需要用到下面的方式来加载 32 位的 IE。下面我描述下我的调用方法,供参考。

    1.首先设置生成 -> 平台 选择 x86
    2.定义出 32 位 WebBrowser 版本路径,这个路径可以在注册表中找到(cmd 中运行 regedit)

    private const string WebBrowser32 = @"SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION";//32位 WebBrowser 版本路径
    private const string WebBrowser64 = @"SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION";//64位 WebBrowser 版本路径
    

    3.通过下面的内置方法去查找注册表中的项,如果存在就设置 WebBrowser 的版本号。

    var registryKey = Registry.LocalMachine.OpenSubKey(WebBrowser32, true);//找到路径,并指定可以修改版本号
    

    4.释放 registryKey

    registryKey.Close();
    

    就这样,我的 WinForm 就能调用到 32 位的 WebBrowser 了。最后附上各版本号的信息以及对应参数:

    
            10001 (0x2711)  Internet Explorer 10。网页以IE 10的标准模式展现,页面!DOCTYPE无效
    
            10000 (0x02710) Internet Explorer 10。在IE 10标准模式中按照网页上!DOCTYPE指令来显示网页。Internet Explorer 10 默认值。
    
            9999 (0x270F)   Windows Internet Explorer 9. 强制IE9显示,忽略!DOCTYPE指令
    
            9000 (0x2328)   Internet Explorer 9. Internet Explorer 9默认值,在IE9标准模式中按照网页上!DOCTYPE指令来显示网页。
    
            8888 (0x22B8)   Internet Explorer 8,强制IE8标准模式显示,忽略!DOCTYPE指令
    
            8000 (0x1F40)   Internet Explorer 8默认设置,在IE8标准模式中按照网页上!DOCTYPE指令展示网页
    
            7000 (0x1B58)   使用WebBrowser Control控件的应用程序所使用的默认值,在IE7标准模式中按照网页上!DOCTYPE指令来展示网页。
    
    评论

报告相同问题?

悬赏问题

  • ¥15 arduino控制ps2手柄一直报错
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥85 maple软件,solve求反函数,出现rootof怎么办?
  • ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题