我目前在写的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:我写它的端口字符串。
啤酒是你。
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