WebBrowser忽略代码

时间:2013-02-12 20:04:51

标签: vb.net visual-studio-2010 webbrowser-control

我正在尝试在我的项目中使用Mibbit irc,到目前为止工作得很好,但是有一个缺陷。单击时粘贴在聊天中的链接将在Internet Explorer中打开,而不是在用户的默认Web浏览器中打开。我尝试实现一个简单的代码,但其中一半似乎被忽略了。

http://i.stack.imgur.com/FKGGr.jpg

WebBrowser组件启动页面:http://widget.mibbit.com/?settings=4abcd3a5f0bf25306d4c6d1968e28cb2&server=irc.mibbit.net&channel=%23Mytestchannel12345

忽略如果包含:mibbit.com(聊天小组)& ad4game.com(愚蠢的旗帜......) 如果包含因为它放置不同的横幅 - 因此,不同的链接。对于widged,它显然有几个托管它的服务器,它重定向到其中一些,如widged1.mibbit.com,widged2.mibbit.com等。

在默认用户浏览器中打开:全部,除了上面的那些。

Public Class Form1
Private Sub WebBrowser1_Navigating(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs) Handles WebBrowser1.Navigating
    Dim navTo As String = e.Url.ToString
    If Not (navTo.ToLower.Contains("mibbit.com") OrElse navTo.ToLower.Contains("ad4game.com") OrElse navTo.ToLower.Contains("about:blank")) Then
        e.Cancel = True
        System.Diagnostics.Process.Start(e.Url.ToString())
    End If
End Sub
End Class

到目前为止没有任何工作......

1 个答案:

答案 0 :(得分:0)

好的,我已经更新了您的代码示例:

添加新功能以找出默认浏览器的路径:

Public Class Form1
Private Sub WebBrowser1_Navigating(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs) Handles WebBrowser1.Navigating
    Dim navTo As String = e.Url.ToString
    If Not (navTo.ToLower.Contains("mibbit.com") OrElse navTo.ToLower.Contains("ad4game.com") OrElse navTo.ToLower.Contains("about:blank")) Then
        e.Cancel = True
        System.Diagnostics.Process.Start(GetDefaultBrowserPath, e.Url.ToString())
    End If
End Sub

' get the default folder path from the registry
Public Function GetDefaultBrowserPath() As String
    Dim defaultbrowser As String = My.Computer.Registry.GetValue("HKEY_CLASSES_ROOT\HTTP\shell\open\command", "", "Not Found")
    Return Split(defaultbrowser, """")(1)
End Function

End Class