InternetSetOptionでUSER_AGENTを設定するには?

解決


ヤマ  2005-11-08 10:31:22  No: 92502

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 10:33:00  No: 92503

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 10:34:03  No: 92504

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


ヤマ  2005-11-08 10:59:42  No: 92505

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


もげ  2005-11-08 17:52:40  No: 92506

具体的には何の目的なのでしょうかね。
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-09 06:33:20  No: 92507

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


ヤマ  2005-11-09 13:35:20  No: 92508

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


ヤマ  2005-11-09 13:56:07  No: 92509

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加