2013-02-05 62 views
0

我已經編寫了一個程序來處理將html文件放入並通過cms進行通信。在這個程序中,我有一些代碼,以便您可以在不同的瀏覽器上預覽。但是,當我運行它時,我得到一個未處理的異常,聲明「無法啓動進程,因爲沒有提供文件名」。使用Windows窗體啓動外部瀏覽器

  • 這隻發生在嘗試啓動Chrome或Firefox時,IE正常工作。
  • 只有當我通過高級安裝程序運行我的程序並將其安裝到我的機器上時它纔會發生,它在直接從VS2012以釋放模式構建時正常工作。

我的代碼如下:提前爲你能提供任何見解

if (chk_ExternalBrowser.Checked) 
{ 
    string ffTempFilePath = "\"" + tempFilePath + "\"";//tempFilePath is an absolute path to the html file 

    Process.Start(browserPaths[1], ffTempFilePath);//launch FF, browserPaths[1] contains an absolute path to firefox.exe 
} 

感謝。

更新: 該錯誤是由於我沒有用引號包圍browserPaths [1]的內容引起的。現在我沒有錯誤,但打開了一個Windows資源管理器窗口,而不是Firefox瀏覽器。我ammended代碼如下:

if (chk_ExternalBrowser.Checked) 
{ 
    string ffTempFilePath = "\"" + tempFilePath + "\"";//after this line ffTempFilePath == \"C:\\Users\\<username ommitted>\\Documents\\Visual Studio 2012\\Projects\\Local_IMP\\Local_IMP\\bin\\Release\\TEMP.html\" 

    string tempTest = "\"" + browserPaths[1] + "\"";//after this line tempTest == \"C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe\" 
    Process.Start(tempTest, ffTempFilePath);//launch FF 
} 
+1

如果Start()的第一個參數是空字符串,則會引發異常。 –

+0

您究竟如何確定瀏覽器的安裝路徑? 'ffTempFilePath'和'browserPaths [1]的價值是什麼?'我會接受一個有根據的猜測,那些變量的實際值並不是你期望的。 –

+0

我在Ramhound中做了一些步驟,但正如我所說的,當我調試時,問題並未出現:(我通過提示用戶在第一次啓動應用程序時確定安裝路徑,然後將其存儲並從之後的文本文件 – gaynorvader

回答

0

原來,我只放\ n來結束我的文件,而不是\ r \ n所以我只是讀正確的IE瀏覽器在第1行而不是一個行其他行上的其他行