2013-02-12 102 views
2

我想在我的项目中使用Mibbit irc,到目前为止运行良好,但存在缺陷。点击聊天时粘贴的链接将在Internet Explorer中打开,而不是用户的默认Web浏览器。我试着实现一个简单的代码,但其中一半似乎被忽略。WebBrowser忽略代码

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 

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

+0

我确定您知道WebBrowser控件是.NET的一部分,而不是VB.NET的一部分? – 2013-02-13 03:01:36

回答

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 
+0

我明白你的意思,但不太清楚如何实现它,但我仍然会尝试从中得到一些东西。 这里是一个测试解决方案,让你可以更熟悉情况。我已经在整个谷歌的各种论坛漫游,但没有类似的。我真的不知道如何使它成为可能,如果是的话。 https://dl.dropbox.com/u/75261985/Solution.zip @John Saunders,谢谢你照顾它,我会看看你给我的那个链接。 – 2013-02-13 21:50:47

+0

好吧,我现在正在计算机上测试我的代码,所以我更新了GetDefaultBrowserPath()函数。试试这个,它适用于我。 – 2013-02-14 21:27:01

+0

我试过使用你的代码,但我不太清楚如何管理它的工作。你可以提供一个例子吗?我真的处于shift + del的边缘,并开始阅读关于C#:-( – 2013-02-17 03:27:43