3

WinHTTP を使用して、Excel VBA マクロで GET 要求を実行しています。ただし、プロキシを使用してネットワーク内のマシンからリクエストを実行しようとすると、機能しません。手動で構成すると機能しますが、私が開発しているツールを使用する人はプロキシ サーバーを知っているとは思いません。

プロキシ サーバーを自動構成する方法、または Windows からプロキシ構成を取得する方法はありますか? サンプルコードは次のとおりです。

Dim result As String
Dim URL As String
Dim winHttpReq As Object
Set winHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")

URL = "http://google.com/"
winHttpReq.Open "GET", URL, False
winHttpReq.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
winHttpReq.setProxy 2, "proxyserver:8080", ""
winHttpReq.send
result = winHttpReq.responseText

この場合、ユーザーに「proxyserver:8080」アドレスを強制的に見つけさせたくありません。必要なのは、それを自動的に入力する方法です。

どうもありがとう。

4

2 に答える 2

2

次のリンクから以下の vbScript を取得しました。を使用してプロキシ サーバーを取得し、変数として "proxyserver:8080" のコードに渡すことができる場合があります。

http://www.activexperts.com/activmonitor/windowsmanagement/scripts/networking/client/retriving/

VBA に非常によく似た vbScript を知っている場合、これは大いに役立つと思います。これを VBA で記述する際にサポートが必要な場合は、お知らせください。

On Error Resume Next

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colItems = objWMIService.ExecQuery("Select * from Win32_Proxy")

For Each objItem in colItems
    Wscript.Echo "Proxy Port Number: " & objItem.ProxyPortNumber
    Wscript.Echo "Proxy Server: " & objItem.ProxyServer
    Wscript.Echo "Server Name: " & objItem.ServerName
    Wscript.Echo
Next
于 2012-05-14T20:21:21.527 に答える