2

プロジェクトで Mibbit irc を使用しようとしていますが、これまでのところ問題なく動作していますが、欠陥があります。クリック時にチャットに貼り付けられたリンクが、ユーザーの既定の Web ブラウザーではなく、Internet Explorer で開かれます。簡単なコードを実装してみましたが、半分は無視されているようです。

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 などのように、そのうちのいくつかにリダイレクトされます。

既定のユーザー ブラウザーで開く: 上記 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 に答える