我知道在WinHttpOpen里的第2个参数能设置是否使用代理..
WINHTTP_ACCESS_TYPE_NO_PROXY        //不支持代理
WINHTTP_ACCESS_TYPE_DEFAULT_PROXY   
WINHTTP_ACCESS_TYPE_NAMED_PROXY     //指定的代理如果设置为WINHTTP_ACCESS_TYPE_DEFAULT_PROXY的话,msdn上说,将使用存储在注册表里的代理设置,并不共享IE的设置..请问要支持IE默认代理该怎么设置?

解决方案 »

  1.   

    那Winhttp没法支持IE默认代理设置吗?
      

  2.   

    读取IE代理信息,然后自己再设置WinHttp的
      

  3.   

    IE代理也在注册表
    _T("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings")
      

  4.   

    Microsoft Windows XP [版本 5.1.2600]
    (C) 版权所有 1985-2001 Microsoft Corp.C:\Documents and Settings\Owner>Proxycfg.exe
    Microsoft (R) WinHTTP Default Proxy Configuration Tool
    版权所有 (C) Microsoft Corporation. 保留所有权利。当前 WinHTTP 代理设置在:
      HKEY_LOCAL_MACHINE\
        SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\
          WinHttpSettings :     直接访问(无代理服务器)。C:\Documents and Settings\Owner>
    这是我使用Proxycfg.exe查看代理设置,但是我打开注册表项HKEY_LOCAL_MACHINE\
        SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\后并没有发现后面的Connections\
          WinHttpSettings :
      

  5.   

    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet SettingsProxyServer
    ...等,这个信息是你当前IE设置的代理,你需要读取它的信息,然后再到WinHttp中设置
      

  6.   

    .Net就是像上面那样自己读设置的……
      

  7.   

    关键是
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings
    我没ProxyServer 这一项, 
    现在我知道了两个函数可以读取ie代理设置,但是有一点小问题
    调用WinHttpGetIEProxyConfigForCurrentUser函数获取当前用户的ie代理设置,获取的信息保存在结构体WINHTTP_CURRENT_USER_IE_PROXY_CONFIG里,关于这个结构体里的成员 lpszProxy,msdn上面说保存的是当前的代理服务器URL,不知道它是否包含了代理服务器的端 口号?如果包含了,但是后面在WinHttpConnect这个函数里有一个参数也是一个端口号,那最后到底是哪一个端口号起作用呢?