设置代理用户和通行证通过注册表

问题描述 投票:0回答:1

我目前在写的AutoIt脚本旋转在Internet Explorer中,需要用户名/密码认证代理。

它不应该真正的问题是什么语言我却在写这个,因为我只是做写入注册表。我读,我可以写格式要求认证代理:“用户名:密码@主机:端口”的访问代理服务器的关键。我也尝试添加了“HTTP://”前缀和仍然没有运气。

Func _IESetProxy($tProxy)
If $tProxy="0" Then
    RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyEnable", "REG_DWORD", 0)
Else
    RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyServer", "REG_SZ", $tProxy)
    RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyEnable", "REG_DWORD", 1)
EndIf
EndFunc

在此之后的代码执行和我检查网络设置,我注意到Proxy功能,端口是正确的,但80的地址字段为空。当我手动检查注册表,访问代理服务器密钥与用户正确地填写:通过@ SERV:我写它的端口字符串。

internet-explorer proxy registry autoit
1个回答
0
投票

啤酒是你。

SetProxy("user:pass@serv,"port")


Func SetProxy($ProxyServer, $ProxyPort = "8080")

    local $ProxyUSER
    local $ProxyPASS

    If StringInStr($proxy,"@") Then

        $proxy1 = StringSplit($proxy, "@")
        $proxy = $proxy1[2]
        $proxy2 = StringSplit($proxy1[1], ":")

        $ProxyUSER = $proxy2[1]
        $ProxyPASS = $proxy2[2]

    EndIf

    $key = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"

    If $proxy == 0 Then
        $reg = RegWrite($key, "ProxyEnable", "REG_DWORD", "0")
        $reg1 = RegWrite($key, "ProxyServer", "REG_SZ", "")
        DllCall('WININET.DLL', 'long', 'InternetSetOption', 'int', 0, 'long', 39, 'str', 0, 'long', 0)
        Return 1
    EndIf

    RegWrite($key, "ProxyEnable", "REG_DWORD", "1")
    RegWrite($key, "ProxyServer", "REG_SZ", $ProxyServer & ":" & $ProxyPort)
    RegWrite($key, "ProxyUser", "REG_SZ", $ProxyUSER)
    RegWrite($key, "ProxyPass", "REG_SZ", $ProxyPASS)
    DllCall('WININET.DLL', 'long', 'InternetSetOption', 'int', 0, 'long', 39, 'str', 0, 'long', 0)




EndFunc   ;==>SetProxy
© www.soinside.com 2019 - 2024. All rights reserved.