我正在尝试在我的项目中使用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
到目前为止没有任何工作......
答案 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