如何寫程式設定 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 = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet 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
arrow
arrow
    全站熱搜

    kingjoy1235 發表在 痞客邦 留言(0) 人氣()