我正在使用以下功能打开用户的默认网络浏览器。
Public Function ShowHelp(ByVal url As String) As System.Diagnostics.Process
Dim startInfo As New Diagnostics.ProcessStartInfo()
startInfo.FileName = url
startInfo.WindowStyle = ProcessWindowStyle.Maximized
Return System.Diagnostics.Process.Start(startInfo)
End Function
该函数多次返回错误(在用户计算机上)“系统找不到指定的文件”
我猜用户没有设置默认的Web浏览器。 为什么我会收到此错误?如何在调用此函数之前添加默认的Web浏览器检查?
答案 0 :(得分:2)
答案 1 :(得分:1)
这是通常使用URL启动浏览器的正确方法,但如果失败,我会抓住该特定异常,然后尝试调用iexplore <url>
在IE中打开URL,因为它必将安装在任何Windows系统上。 (我假设你不是在这里以Mono / Linux为目标。)
答案 2 :(得分:0)
这是在C#中,但这是一篇很好的文章:
这是C#作为VB.NET:
Private Function getDefaultBrowser() As String
Dim browser As String = String.Empty
Dim key As RegistryKey = Nothing
Try
key = Registry.ClassesRoot.OpenSubKey("HTTP\shell\open\command", False)
'trim off quotes
browser = key.GetValue(Nothing).ToString().ToLower().Replace("""", "")
If Not browser.EndsWith("exe") Then
'get rid of everything after the ".exe"
browser = browser.Substring(0, browser.LastIndexOf(".exe") + 4)
End If
Finally
If key IsNot Nothing Then
key.Close()
End If
End Try
Return browser
End Function
答案 3 :(得分:0)
如果您在Windows上运行,则以下命令行应该可以在任何地方运行:
rundll32 url.dll,FileProtocolHandler <your_url>
其中&lt; your_url&gt;是要导航到的网页网址。
Public Function ShowHelp(ByVal url As String) As System.Diagnostics.Process
Dim startInfo As New Diagnostics.ProcessStartInfo()
startInfo.FileName = "rundll32 url.dll,FileProtocolHandler"
startInfo.Arguments = url
startInfo.WindowStyle = ProcessWindowStyle.Maximized
Return System.Diagnostics.Process.Start(startInfo)
End Function
答案 4 :(得分:0)
如果您希望以“.html”或“htm”结尾显示文件,则可以将其传递给Process.Start()方法。同样可以使用URL。
(您必须设置标志以使Process.Start()使用shell方法。)