2011-10-07 16 views
4

我試圖打開一個URL,下面是一個簡單的方法,寫在谷歌,甚至MSDN。但不知什麼原因,我得到一個異常如下:Process.Start打開一個URL,得到一個異常?

Exception

這裏是我的代碼:

private void linkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 
{ 
    ProcessStartInfo sInfo = new ProcessStartInfo("http://github.com/tbergeron/todoTxt"); 
    Process.Start(sInfo); 
} 

任何想法,爲什麼它失敗的原因?

非常感謝!

+0

http://devtoolshed.com/content/launch-url-default-browser-using-c ff作爲默認瀏覽器可能會導致此類錯誤 – wiero

+0

我有這個想法,但我不想強制任何用戶使用任何瀏覽器。 – TomShreds

+2

你能提供Win32Exception的錯誤代碼嗎?您將在Win32Exception類中找到名爲ErrorCode和NativeErrorCode的屬性。 – Hans

回答

-1

扔在它前面的開始,如果你想在默認瀏覽器啓動:

new ProcessStartInfo("start http://github.com/tbergeron/todoTxt"); 
+0

這應該是啓動默認瀏覽器。我不想強迫任何人使用iexplore LOL。 – TomShreds

+0

@Tom。好點子。我其實並不知道如何啓動默認瀏覽器。 –

+0

以下是來自MS的信息:http://support.microsoft.com/kb/305703 – TomShreds

1

您正在尋找string超載Process.Start()

Process.Start("http://github.com/tbergeron/todoTxt"); 
+1

試過了,它也會發生同樣的例外情況。不過謝謝你。 – TomShreds

+1

你確定嗎?我可以重新編寫你的異常,但使用字符串版本調用運行良好。您的機器可能配置錯誤。 –

8

這顯然是機器具體行爲(http://devtoolshed.com/content/launch-url-default-browser-using-c)。

鏈接的文章建議使用Process.Start("http://myurl")但追趕Win32Exception和 回落至Process.Start("IExplore.exe", "http://myurl"):嘗試幾乎所有的東西后

try 
{ 
    Process.Start("http://myurl"); 
} 
catch (Win32Exception) 
{ 
    Process.Start("IExplore.exe", "http://myurl"); 
} 

可悲的是,這是我能在我的機器上做的最好的。