Private Declare Function UrlMkSetSessionOption Lib "urlmon.dll" _
(ByVal dwoption As Long, pBuffer As Any, _
ByVal dwbufferlength As Long, _
ByVal dwReserved As Long)
Private Declare Function InternetSetOption Lib "wininet.dll" Alias "InternetSetOptionA" _
(ByVal hinternet As Long, _
ByVal dwoption As Long, _
ByRef lpbuffer As Any, _
ByVal dwbufferlength As Long) As Long
Const internet_option_proxy = 38
Const option_ua = &H10000001
Const INTERNET_OPTION_USER_AGENT = 41
Private Sub Command1_Click()
Dim proxyURL As String
Dim UA As String
UA = "Mozilla/1.1 (compatible; MSPIE 2.0; Windows CE)"
proxyURL = "zzzzzz.yyyyy.jp:8080"
Dim options As INTERNET_PROXY_INFO
options.dwAccessType = INTERNET_OPEN_TYPE_DIRECT
options.lpszProxy = proxyURL
options.lpszProxyBypass = ""
InternetSetOption 0, internet_option_proxy, options, LenB(options)'<--ここは成功します。
end sub
InternetSetOptionStr 0,INTERNET_OPTION_USER_AGENT, UA, LenB(UA)
'<--ここの3番目の引数がヘッダを見てもよくわかりませんでした。
================
UrlMkSetSessionOption
も試して両方やったのですが、
エラー49がでてしまいました。宣言が多分間違ってると思います。
自分なりに調べてみたのですが、参考資料があまりないので
ヘッダファイルを見ながら色々やってたのですが、
どうもヘッダファイル自体わからないので質問させてください。
Public Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Public Const INTERNET_OPEN_TYPE_DIRECT = 1
Public Const INTERNET_OPEN_TYPE_PROXY = 3
Type INTERNET_PROXY_INFO
dwAccessType As Long
lpszProxy As String
lpszProxyBypass As String
End Type
============
パブリックでこれ宣言しています。
InternetSetOptionStr はInternetSetOptionです。
何度もすみません
開発環境はWindowsXP Vb6.0 Pro SP6 IE 6.02です。
具体的には何の目的なのでしょうかね。
USER_AGENTの偽装?
http://www.graphcomp.com/info/specs/ms/inetr002.htm では、
>Sets the user agent string on handles supplied by InternetOpen and >used in subsequent HttpSendRequest functions, as long as it is not >overridden by a header added by HttpAddRequestHeaders or >HttpSendRequest.
とあるので、 InternetOpenでハンドルを得る必要があるようですが。
どうやら、そのとおりのようです。
Proxyの場合はOKなのですがUSER_AGENTの場合はだめのようです。
そこれ
UrlMkSetSessionOption を使いたいのですが、、
うまく呼び出せません(49エラー)
宣言が間違っていますでしょうか。
なんか話がかわってきたので解決にしておきます。すいません。
もげさんレスありがとうございました。m(_ _)m
新しく質問をしているのでよろしくお願いします。
ツイート | ![]() |