下面的这片代码是设置代理ip并且刷新的。可是我试了几次没有效果。在打开id的选项那边查看,发现并没有改变。
打开注册表 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings,查看ProxyServer的值发现也没有变化,不知道是怎么回事。我的是xp系统。
Option ExplicitPrivate 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 LongPrivate Type INTERNET_PROXY_INFO
        dwAccessType As Long
        lpszProxy As String
        lpszProxyBypass As String
End TypePrivate Const INTERNET_OPTION_PROXY = 38
Private Const INTERNET_OPTION_SETTINGS_CHANGED = 39
Private Const INTERNET_OPEN_TYPE_DIRECT = 1
Private Const INTERNET_OPEN_TYPE_PROXY = 3
     
Private Sub SetProxy(aStrIP As String, aStrPort As String, aBolUseProxy As Boolean)
    Dim strProxy As String
    Dim inf As INTERNET_PROXY_INFO
    aStrIP = Trim(aStrIP)
    aStrPort = Trim(aStrPort)
    If (aStrIP + aStrPort = "") Or Not aBolUseProxy Then
       strProxy = ""
    Else
       strProxy = "http=" + aStrIP + ":" + aStrPort
    End If
           
    If Trim(strProxy) <> "" Then
       inf.dwAccessType = INTERNET_OPEN_TYPE_PROXY
       inf.lpszProxy = strProxy
       inf.lpszProxyBypass = ""
       Call InternetSetOption(0, INTERNET_OPTION_PROXY, inf, Len(inf))
       Call InternetSetOption(0, INTERNET_OPTION_SETTINGS_CHANGED, "", 0)
    Else
       inf.dwAccessType = INTERNET_OPEN_TYPE_DIRECT
       inf.lpszProxy = ""
       inf.lpszProxyBypass = ""
       Call InternetSetOption(0, INTERNET_OPTION_PROXY, inf, Len(inf))
       Call InternetSetOption(0, INTERNET_OPTION_SETTINGS_CHANGED, "", 0)
    End If
End Sub
'===使用代理上网
Private Sub Command1_Click()
    SetProxy "123.10.10.233", "80", True
End Sub
     
'===不使用代理上网
Private Sub Command2_Click()
    SetProxy "123.10.10.233", "80", False
End Sub

解决方案 »

  1.   

    这只是针对 hInternet 的吧这个貌似是针对特定一次连接而设置的是否使用代理,并非是全局设置
      

  2.   

    测试,注册表值没有修改。网上有讨论说要用api来修改注册表……
      

  3.   

    设置代理:[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
    "ProxyEnable"=dword:00000001
    "ProxyServer"="ip:端口"
      

  4.   

    测试过 没用 xp sp2
      

  5.   

    不需要的,重启ie就生效。用Call InternetSetOption(0, INTERNET_OPTION_SETTINGS_CHANGED, "", 0) 这个刷新的话重启ie都不需要了。