如何设定 IE 浏览器使用 Proxy Server

如何设定 IE 浏览器使用 Proxy Server


如何写程序设定 IE 浏览器使用代理服务器 ( Proxy Server )

<< VB6写法 >>

方法1 :

使用 WSH 对象的 WScript.Shell 对象类的 RegWrite 方法来修改登录档 , 透过登录档的修改,

设定IE ( Internet Explorer ) 浏览器 ( Browser ) 的网络连线 使用代理服务器 ( Proxy Server )

调用端 :

ProxySettings("proxy.hinet.net:80", 1)

' Function

Public Sub ProxySettings(ByRef strAddress As String, ByRef intSwitch As Short)

Dim strKey As String

strKey = "HKCUSoftwareMicrosoftWindowsCurrentVersionInternet Settings"

'Set Proxy Enabled Or Disable

' 1 = Enable , 0 = Disable

With CreateObject("WScript.Shell")

.RegWrite(strKey & "ProxyEnable", intSwitch, "REG_DWORD")

.RegWrite(strKey & "ProxyServer", strAddress, "REG_SZ")

End With

End Sub

================================================================

方法2 :

使用 WMI 对象的 Win32_Proxy 对象类

调用端 :

Set_IE_Proxy "proxy.hinet.net", 80

' Function

Private Function Set_IE_Proxy(strProxy As String, intPort As Integer) As Boolean

On Error Resume Next

Const strWMIcls = "Win32_Proxy" ' WMI Class

GetObject("winmgmts:").InstancesOf(strWMIcls) _

(strWMIcls & ".ServerName=""" & Environ("ComputerName") & """") _

.SetProxySetting strProxy, intPort ' 设定 Proxy Server , Port

Set_IE_Proxy = (Err = 0)

End Function

================================================================

<< VB.Net 写法 >>

使用 WMI 对象的 Win32_Proxy 对象类

请先加入参考 System.Management

Imports System.Management

写法1 :

' 调用端

SetProxy("proxy.hinet.net", 80) ' Set Proxy Server

' Function 1

Private Sub SetProxy(ByVal strAddress As String, ByVal intPort As Integer)

' 初始化 ManagementObjectSearcher 类的新执行个体 (Instance)。

' 取回一个 WMI 对象基底之查询的 集合对象(Collection)

Dim objSearch As New ManagementObjectSearcher("SELECT * FROM WIN32_PROXY")

Dim objPxy As ManagementObject ' 声明 ManagementObject 数据管理对象

Dim objMBO As ManagementBaseObject ' 声明 ManagementBaseObject 管理对象的基本类

' 枚举出 Win32_Proxy WMI 类中每一个代理服务器 (成员)

For Each objPxy In objSearch.Get() ' 使用 Get 方法, 叫用指定的 WMI 查询,并返回产生的集合。

objMBO = objPxy.GetMethodParameters("SetProxySetting") ' 用GetMethodParameters 方法取得输入参数

objMBO.SetPropertyValue("ProxyServer", strAddress) ' 设定属性 , 代理服务器位置

objMBO.SetPropertyValue("ProxyPortNumber", intPort) ' 设定属性 , 代理服务器 Port


' 在对象上叫用方法 ( SetProxySetting ) , 并传入参数 ( 参数对象 )

objPxy.InvokeMethod("SetProxySetting", objMBO, Nothing)

Next

End Sub

================================================================

写法2 :

' 调用端

SetProxyServer("proxy.hinet.net", 80) ' Set Proxy Server

' Function 2

Private Sub SetProxyServer(ByVal strAddress As String, ByVal intPort As Integer)

Dim strPath As String ' Management Path

strPath = "Win32_Proxy.ServerName=""" & Environ("ComputerName") & """"

Dim objWMI As New ManagementObject(strPath) ' 初始化新执行个体 (Instance)。

Dim objMBO As ManagementBaseObject ' 声明管理对象的基本类

objMBO = objWMI.GetMethodParameters("SetProxySetting") ' 取得参数

objMBO!ProxyServer = strAddress ' 设定代理服务器位置

objMBO!ProxyPortNumber = intPort ' 设定代理服务器Port

' 调用 SetProxySetting 方法并传入参数

objWMI.InvokeMethod("SetProxySetting", objMBO, Nothing)

End Sub

PS : Function 1 跟 2 , 仅写法不同 , 一个较繁杂, 另一个较精简