【问题标题】:WebBrowser ignores the codeWebBrowser 忽略代码
【发布时间】:2013-01-28 05:55:03
【问题描述】:

我正在尝试在我的项目中使用 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

到目前为止没有任何效果......

【问题讨论】:

  • 我确定您知道 WebBrowser 控件是 .NET 的一部分,而不是 VB.NET 的一部分?

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


【解决方案1】:

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

添加一个新函数,找出默认浏览器的路径是什么:

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

【讨论】:

  • 我明白你的意思,但不太确定如何实现它,但我仍然会尝试从中得到一些东西。这是一个测试解决方案,因此您可以更熟悉情况。我在整个谷歌的大量论坛中漫游,但没有类似的。老实说,我根本不知道如何使它成为可能,如果是的话。 dl.dropbox.com/u/75261985/Solution.zip@John Saunders,谢谢你的照顾,我会看看你给我的那个链接。
  • 好的,我现在在可以测试我的代码的计算机上,所以我更新了 GetDefaultBrowserPath() 函数。试试这个,对我来说效果很好。
  • 我尝试使用您的代码,但我不太确定如何管理它以使其正常工作。如果可能的话,你能提供一个例子吗?我真的处于 shift+del 一切的边缘,开始阅读 C# :-(
  • 如果您不知道如何将函数复制到模块中,我认为从 VB.Net 迁移到 C# 对您没有帮助。但是,如果您不知道如何使用这两种语言,那么学习 C# 可能更有意义,因为它是一种更流行的语言。
  • 我确实尝试过复制它,尝试后它没有做任何事情,我不知道如何修改它。我显然做错了什么,我自己也不知道是什么。关于 vb.net,我还不太了解,只够做基本的,但很酷的东西。寻求帮助意味着我实际上很专注并期待学习它。我看过很多示例代码,并立即了解它是如何工作的,但我根本没有。我不太确定需要放在哪里,和/或以什么方式修改。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-19
  • 2023-03-04
  • 2018-06-21
相关资源
最近更新 更多