VB.net 2008でブラウザもどきを作成しております。
インターネットオプションの設定に依存せずにproxyの設定を行いたいので
UrlMkSetSessionOptionを使用しているのですが、直接接続になってしまいます。
どなたか御教示ください。
Public Declare Sub UrlMkSetSessionOption Lib "urlmon.dll" _
(ByVal dwOption As Integer, ByVal pBuffer As INTERNET_PROXY_INFO, _
ByVal dwBufferLength As Integer, _
ByVal dwReserved As Integer)
Public Enum InternetOpenType
INTERNET_OPEN_TYPE_PRECONFIG = 0
INTERNET_OPEN_TYPE_DIRECT = 1
INTERNET_OPEN_TYPE_PROXY = 3
INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY = 4
End Enum
Public Structure INTERNET_PROXY_INFO
Public InternetOpenType As InternetOpenType
Public proxy As String
Public proxyBypass As String
End Structure
Public Sub InternetOptionProxy(ByVal nOpenType As InternetOpenType, ByVal proxy As String, ByVal proxyBypass As String)
Const INTERNET_OPTION_PROXY As Integer = 38
Dim ipi As INTERNET_PROXY_INFO
ipi.InternetOpenType = nOpenType
ipi.proxy = proxy
ipi.proxyBypass = proxyBypass
Call UrlMkSetSessionOption(INTERNET_OPTION_PROXY, ipi, Marshal.SizeOf(ipi), 0)
End Sub
Private Sub wbsDisplay_Navigating(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs) Handles wbsDisplay.Navigating
Call InternetOptionProxy(InternetOpenType.INTERNET_OPEN_TYPE_PROXY, "localhost:8080", "")
End Sub
> UrlMkSetSessionOption
を、BeforeNavigate/BeforeNavigate2イベント内で呼びます。
熊谷隆史さん
回答ありがとうございます。
.net2008のwebBrowserコントロールにはBeforeNavigateイベントがないため
Navigatingイベントを使用しています。
USER_AGENTはNavigatingイベントで変更できたのですが...
> VB.net 2008でブラウザもどきを作成しております。
ここは、VB2〜VB6専用の掲示板です。
VB2008 の投稿は隣の掲示板にお願いします。
一応ヒント;宣言自体から見直す必要があるかと思います。
・第2引数を、ByVal/Class または ByRef/Structure または ByVal/IntPtr に変更してみましょう。
・UrlMkSetSessionOption の戻り値(HRESULT)も確認できるようにしておきましょう。
・戻り値が S_OK で無い場合は、Err.LastDllError/Marshal.GetLastWin32Error も確認を。
魔界の仮面弁士さん
>VB2008 の投稿は隣の掲示板にお願いします
申し訳ありません。
下記に新規質問を上げ
http://madia.world.coocan.jp/cgi-bin/vbnet/wwwlng.cgi?print+201008/10080011.txt
当質問は解決済みとしました。