2

我正在尝试在我的项目中使用 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(聊天widged)和ad4game.com(愚蠢的横幅......)如果包含,因为它放置了不同的横幅 - 因此,不同的链接。对于 widged 来说,它显然有几台服务器托管它,它会重定向到其中的一些服务器,如 widged1.mibbit.com、widged2.mibbit.com 等。

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

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

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

4

1 回答 1

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
于 2013-02-13T02:52:06.180 回答