簡體   English   中英

的Process.Start(“IEXPLORE.EXE”); < - 這可靠嗎?

[英]Process.Start(“IExplore.exe”); <— Is this reliable?

的Process.Start( “IEXPLORE.EXE”);

這在每台機器上都能正常工作嗎? 如果沒有,怎么做得好?

...編輯:.................................

Process.Start(“ http://www.example.com/ ”)的問題; 是我們必須定位一個本地html文件,其中一些查詢字符串指定要在html框架集中加載哪個頁面。 所以我們的URL如下所示:

G:\PathToHelpFolder\index.html#search?page=1.html

如果將此路徑傳遞給Process.Start,則會生成錯誤:“找不到該文件”。 這是由最后的查詢字符串引起的。 (#搜尋?頁= 1.HTML)

因此,我們必須使用filepath作為命令行參數來啟動資源管理器(或默認瀏覽器會更好)。 我們在MSDN文檔中找到了上述方法。 (Process.Start(“IExplore.exe”);)我們唯一的問題是這個方法是否足夠可靠,可以部署到商業應用程序。 單聲道不是問題,只有Windows系統是目標。

...編輯:我們的解決方案......

我們的解決方案是從注冊表中獲取默認瀏覽器,並以文件名作為參數啟動它。 (如:在文件中用html啟動默認瀏覽器,然后跳轉到特定錨點

如果您的目標是打開瀏覽器轉到特定頁面,最好只使用頁面URL:

Process.Start("http://www.example.com/");

這樣,將使用用戶的默認瀏覽器。 (對於其中一個,我會因為被迫使用IE而煩惱。)

我曾經為我構建的一個愚蠢的應用程序需要默認瀏覽器的名稱(沒有打開),我在這里找到了一個很棒的教程: http//ryanfarley.com/blog/archive/2004/05/16/649.aspx

這應該適用於在Process.Start可以使用PATH環境變量找到的位置中具有名為IExplore.exe的可執行文件的每台計算機。

Process.Start文檔

通過指定文件名來啟動進程類似於在Windows“開始”菜單的“運行”對話框中鍵入信息。 因此,文件名不需要表示可執行文件。 它可以是擴展名與系統上安裝的應用程序關聯的任何文件類型。 例如,如果您將文本文件與編輯器(如記事本)關聯,則文件名可以具有.txt擴展名;如果您具有帶有文字處理工具的關聯.doc文件(如Microsoft Word),則文件名可以具有.doc。 同樣,與“運行”對話框可以接受帶有或不帶.exe擴展名的可執行文件名的方式相同,.exe擴展名在fileName參數中是可選的。 例如,您可以將fileName參數設置為“Notepad.exe”或“Notepad”。

如果有人重命名或刪除了IExplore.exe ,或者它位於不在PATH環境變量中的位置,那么它將無效。

但是,如果您的目標是打開瀏覽器,那么我會像其他人建議的那樣傳遞URL。

你也可以在那里扔一個網址。 Process.Start(" http://somewebsite.com "); )將始終工作並使用標准瀏覽器。

您可能應該直接運行HTML文件,以便尊重用戶的關聯。 作為一個用戶,沒有什么比讓我明確設置我的首選項以使用其他瀏覽器時使用IE強制我使用IE更令人討厭的了。

您可以創建一個簡單的HTML文件來重定向您想要的實際鏈接,然后啟動指向該更簡單URL的進程。

嘗試這個:

Process.Start("file:///g:/PathToHelpFolder/index.html#search?page=1.html");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM