C# 如何为Win7强制IE-8 32位,而不破坏WinXP上的IE-7?

C# 如何为Win7强制IE-8 32位,而不破坏WinXP上的IE-7?,c#,internet-explorer,windows-7,windows-xp,operating-system,C#,Internet Explorer,Windows 7,Windows Xp,Operating System,我们正在运行一个C#net应用程序,用户可能拥有WinXP或Win7。WinXP主要使用IE-7,Win7用户使用IE-8。在应用程序中,需要显示网页,并且只能在32位浏览器(Crystal Reports)上工作 在WinXP中,使用C:\Program Files\Internet Explorer\iexplore.exe调用浏览器 在Win7中,调用64位浏览器时使用的是相同的,但调用32位浏览器时使用的是C:\Program Files(x86)\Internet Explorer\i

我们正在运行一个C#net应用程序,用户可能拥有WinXP或Win7。WinXP主要使用IE-7,Win7用户使用IE-8。在应用程序中,需要显示网页,并且只能在32位浏览器(Crystal Reports)上工作

在WinXP中,使用C:\Program Files\Internet Explorer\iexplore.exe调用浏览器

在Win7中,调用64位浏览器时使用的是相同的,但调用32位浏览器时使用的是C:\Program Files(x86)\Internet Explorer\iexplore.exe

因此,我们需要确定用户的操作系统,然后使用合适的IE。或者,我们需要以某种方式使IE 32位成为默认浏览器

当我们第一次遇到这个问题时,我是为数不多的Win7用户之一,我们在我的电脑中重新映射了iexplore,指向32位IE。这项功能运行了几个月,直到我们升级了,它破坏了IE,以至于它根本无法启动,我的电脑也被重新映像。我不认为这是一个好的解决方案,为我们的一般用户


我们是否应该获得用户的操作系统,然后调用相应的IE?那怎么办?或者,有没有更好的方法来处理这个问题?OSs的混合可能会持续很长一段时间,也许会持续几年。

您应该调用
Process.Start(@“\path\to\file.html”)
在用户的默认浏览器中打开页面

如果您确实需要32位IE的路径,请致电

Path.Combine(
    Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86),  
    @"Internet Explorer\iexplore.exe"
)

启动URL将打开默认浏览器。不过,这可能不太可能。我还建议使用协议和其他所有内容格式化url。

@McKay:我假设是本地文件。他说只有32位IE可以处理网页-听起来像是使用32位ActiveX控件。是的,但是本地文件可能被编程为在编辑器中打开,但是url会启动默认浏览器。@大卫:我认为默认浏览器不会是IE x64。@McKay:HTML文件很少默认使用编辑器打开。
Process.Start("http://www.example.com/path/to/file.html");