2011-11-17 45 views
0

我們正在運行一個C#.net應用程序,用戶可能擁有WinXP或可能擁有Win7。 WinXP主要在IE-7上,Win7用戶有IE-8。在應用程序中,需要顯示網頁,並且只能在32位瀏覽器(Crystal Reports)上運行。如何強制Win7的IE-8 32位,並不打破WinXP的IE-7?

在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?這將如何完成?或者,有沒有更好的方法來處理這個問題?可能會有一段時間,也許幾年的操作系統混合。

回答

2

您應該致電Process.Start(@"\path\to\file.html")在用戶的默認瀏覽器中打開頁面。

如果你真的需要的路徑,32位IE,請撥打

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

+1,但有兩個警告 – McKay

+0

@McKay:我假設一個本地文件。 – SLaks

+1

他說只有32位IE可以處理網頁 - 聽起來就像是使用32位ActiveX控件。 – David

0
Process.Start("http://www.example.com/path/to/file.html"); 

啓動URL會打開默認的瀏覽器。儘管這可能不是IE。我還建議使用協議和其他一切格式化網址。