Friday, May 22, 2009

如何用VBS设置IE代理访问网页(XP/Vista)

' Save proxy setting
dim bDefaultConnectionSettings
dim dwProxyEnable
dim strProxyServer
dim strProxyOverride
dim strAutoConfigURL

Const HKEY_CURRENT_USER = &H80000001
Const strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings"
Set objRegistry = GetObject("winmgmts:\\.\root\default:StdRegProv")

If objRegistry.GetBinaryValue(HKEY_CURRENT_USER, strKeyPath + "\Connections", "DefaultConnectionSettings", bDefaultConnectionSettings) <> 0 Then
    Err.Raise 1
End If
If objRegistry.GetDwordValue(HKEY_CURRENT_USER, strKeyPath, "ProxyEnable", dwProxyEnable) <> 0 Then
    dwProxyEnable = 0
End If
If objRegistry.GetStringValue(HKEY_CURRENT_USER, strKeyPath, "ProxyServer", strProxyServer) <> 0 Then
    strProxyServer = ""
End If
If objRegistry.GetStringValue(HKEY_CURRENT_USER, strKeyPath, "ProxyOverride", strProxyOverride) <> 0 Then
    strProxyOverride = ""
End If
If objRegistry.GetStringValue(HKEY_CURRENT_USER, strKeyPath, "AutoConfigURL", strAutoConfigURL) <> 0 Then
    strAutoConfigURL = ""
End If

' Set proxy
newDefaultConnectionSettings = bDefaultConnectionSettings
newDefaultConnectionSettings(8) = newDefaultConnectionSettings(8) and not 8
objRegistry.SetBinaryValue HKEY_CURRENT_USER, strKeyPath + "\Connections", "DefaultConnectionSettings", newDefaultConnectionSettings
objRegistry.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, "ProxyEnable", 1
objRegistry.SetStringValue HKEY_CURRENT_USER, strKeyPath, "ProxyServer", "bej-yjl:8080"
objRegistry.SetStringValue HKEY_CURRENT_USER, strKeyPath, "ProxyOverride", "bej-yjl:8080"
objRegistry.DeleteValue HKEY_CURRENT_USER, strKeyPath, "AutoConfigURL"

' Open IE
Set objShell = CreateObject("WScript.Shell")
' change this to the real URL
objShell.Run "iexplore.exe http://www.sina.com.cn", 3, True

' Restore proxy setting
objRegistry.SetBinaryValue HKEY_CURRENT_USER, strKeyPath + "\Connections", "DefaultConnectionSettings", bDefaultConnectionSettings
objRegistry.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, "ProxyEnable", dwProxyEnable
objRegistry.SetStringValue HKEY_CURRENT_USER, strKeyPath, "ProxyServer", strProxyServer
objRegistry.SetStringValue HKEY_CURRENT_USER, strKeyPath, "ProxyOverride", strProxyOverride
If strAutoConfigURL <> "" Then
   objRegistry.SetStringValue HKEY_CURRENT_USER, strKeyPath, "AutoConfigURL", strAutoConfigURL
Else
   objRegistry.DeleteValue HKEY_CURRENT_USER, strKeyPath, "AutoConfigURL"
End If

If MsgBox("Delete the script?", vbYesNo, "Confirmation") = vbYes Then
   fso.DeleteFile(WScript.ScriptName)
End If

No comments: