InternetSetOptionでUSER_AGENTを設定するには?

解決


ヤマ  2005-11-08 01:31:22  No: 92502  IP: [192.*.*.*]

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がでてしまいました。宣言が多分間違ってると思います。

自分なりに調べてみたのですが、参考資料があまりないので
ヘッダファイルを見ながら色々やってたのですが、
どうもヘッダファイル自体わからないので質問させてください。

編集 削除
ヤマ  2005-11-08 01:33:00  No: 92503  IP: [192.*.*.*]

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
============
パブリックでこれ宣言しています。

編集 削除
ヤマ  2005-11-08 01:34:03  No: 92504  IP: [192.*.*.*]

InternetSetOptionStr はInternetSetOptionです。
何度もすみません

編集 削除
ヤマ  2005-11-08 01:59:42  No: 92505  IP: [192.*.*.*]

開発環境はWindowsXP Vb6.0 Pro SP6 IE 6.02です。

編集 削除
もげ  2005-11-08 08:52:40  No: 92506  IP: [192.*.*.*]

具体的には何の目的なのでしょうかね。
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でハンドルを得る必要があるようですが。

編集 削除
ヤマ  2005-11-08 21:33:20  No: 92507  IP: [192.*.*.*]

どうやら、そのとおりのようです。
Proxyの場合はOKなのですがUSER_AGENTの場合はだめのようです。
そこれ
UrlMkSetSessionOption を使いたいのですが、、
うまく呼び出せません(49エラー)
宣言が間違っていますでしょうか。

編集 削除
ヤマ  2005-11-09 04:35:20  No: 92508  IP: [192.*.*.*]

なんか話がかわってきたので解決にしておきます。すいません。

編集 削除
ヤマ  2005-11-09 04:56:07  No: 92509  IP: [192.*.*.*]

もげさんレスありがとうございました。m(_ _)m
新しく質問をしているのでよろしくお願いします。

編集 削除