2

データベースに一連の HTTP リンクが保存されており、リンクの一部として名前付きタグ (例: http://somecompany.com/products#123332) があり、かなり大きなページで製品 123332 を表しています。

上記のリンクは、IE を使用している場合は正常に機能しますが、Chrome では機能しません。#文字は変換され、%23Chrome は参照を見つけることができません。ブラウザのアドレス フィールドで「%23戻る」を変更すると、正しく機能します。#

リンクは標準の VB に保存されており、を介して を別の値Stringに置き換えようとしました。これを正しくエンコードする適切な方法が必要です。ウェブ上で機能しているように見える参照が見つからないようです。#String.Replace()

呼び出しの簡単な例は次のようになります。

Shell(strBrowser & strLink) 

wherestrBrowserには必要なすべてのパスと exe 名が含まれており、strLink上で述べたのと同様の文字列です。また、前述のように、IEでも問題なく動作します。これを正しくエンコードするにはどうすればよいですか?

ありがとう。

コード

If oFichierAide.LienIntern = 1 Then
    strLink = " " + Chr(34) + VarGlobales.EmplacementAppl + oFichierAide.LienFichier + Chr(34)
Else
    strLink = " " + Chr(34) + oFichierAide.LienFichier + Chr(34)
End If

Try
    regBrowserKey = My.Computer.Registry.ClassesRoot.OpenSubKey("HTTP\shell\open\command", False)
    strBrowser = regBrowserKey.GetValue(Nothing).ToString().ToLower().Replace(Chr(34), "")
    strBrowser = strBrowser.Substring(0, strBrowser.LastIndexOf(".exe") + 4)

Finally
    If regBrowserKey IsNot Nothing Then
        regBrowserKey.Close()
    End If
End Try

If strBrowser.Length > 0 And strLink.Length > 1 Then
    Dim strCall As String = strBrowser + strLink
    Shell(strCall, AppWinStyle.NormalFocus, False)
    Return True
End If
4

1 に答える 1

1

次のようにして、Visual Basic を介して、文字列変数で保存された任意の URL に任意のクロム ウィンドウを開くことができます。

Dim appData As String = GetFolderPath(SpecialFolder.ApplicationData)
Dim chromelocation = appdata + "\Local\Google\Chrome\Application\chrome.exe"
process.start(chromelocation + strLink)

その後、Chrome が開き、アクセス先のアドレスが strLink の内容になっているはずです。

于 2012-09-22T00:16:06.903 に答える