够够的了,朋友不睡觉就算了@

还非要我起来给他弄了一个什么代理切换器

觉得旁路的朋友可以尝试一下

代码共享,大家玩玩就行了

说明在后面,代码自取!

记事本 保存为.vbs 保存编码是:ANSI

Option Explicit

' 创建 Shell 对象,用于执行注册表操作和弹出提示
Dim wshShell
Set wshShell = CreateObject("WScript.Shell")

' 定义代理相关常量
Const PROXY_ENABLE = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable"
Const PROXY_SERVER = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer"
Const PROXY_OVERRIDE = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyOverride"
' 代理服务器地址,可根据实际修改
Const PROXY_SERVER_ADDR = "192.168.0.1:7890" #---修改这里的IP和端口号---
' 本地地址绕过规则,可根据实际调整
Const PROXY_OVERRIDE_VAL = "192.168.*;10.*;172.16.*;172.17.*;172.18.*;172.19.*;172.20.*;172.21.*;172.22.*;172.23.*;172.24.*;172.25.*;172.26.*;172.27.*;172.28.*;172.29.*;172.30.*;172.31.*;127.0.0.1" 

' 获取当前代理状态
Dim currentProxyStatus
currentProxyStatus = GetProxyStatus()

' 弹出操作选择对话框,修改按钮文字
Dim choice
choice = MsgBox("当前代理状态: " & currentProxyStatus & vbCrLf & "请选择操作:", _
                vbYesNo + vbQuestion, _
                "代理设置工具")
' 根据按钮值判断并执行对应操作,同时处理按钮文字逻辑
If choice = vbYes Then
    ' 对应“打开代理”操作
    EnableProxy
ElseIf choice = vbNo Then
    ' 对应“关闭代理”操作
    DisableProxy
End If

' 获取当前代理状态函数
Function GetProxyStatus()
    On Error Resume Next
    Dim proxyEnabled
    proxyEnabled = wshShell.RegRead(PROXY_ENABLE)
    If proxyEnabled = 1 Then
        GetProxyStatus = "已启用"
    Else
        GetProxyStatus = "已禁用"
    End If
    On Error Goto 0
End Function

' 启用代理函数
Sub EnableProxy()
    On Error Resume Next
    ' 设置 ProxyEnable 为 1(启用代理)
    wshShell.RegWrite PROXY_ENABLE, 1, "REG_DWORD"
    ' 设置代理服务器地址
    wshShell.RegWrite PROXY_SERVER, PROXY_SERVER_ADDR, "REG_SZ"
    ' 设置本地地址绕过规则
    wshShell.RegWrite PROXY_OVERRIDE, PROXY_OVERRIDE_VAL, "REG_SZ"
    
    If Err.Number = 0 Then
        ' 操作成功提示,5 秒后自动关闭
        wshShell.Popup "代理已成功打开!", 5, "操作成功", vbInformation
    Else
        wshShell.Popup "打开代理失败:" & Err.Description, 5, "错误", vbCritical
    End If
    On Error Goto 0
End Sub

' 禁用代理函数
Sub DisableProxy()
    On Error Resume Next
    ' 设置 ProxyEnable 为 0(禁用代理)
    wshShell.RegWrite PROXY_ENABLE, 0, "REG_DWORD"
    ' 可选择是否删除 ProxyServer 和 ProxyOverride 键值,按需调整
    ' wshShell.RegDelete PROXY_SERVER 
    ' wshShell.RegDelete PROXY_OVERRIDE 
    
    If Err.Number = 0 Then
        wshShell.Popup "代理已成功关闭!", 5, "操作成功", vbInformation
    Else
        wshShell.Popup "关闭代理失败:" & Err.Description, 5, "错误", vbCritical
    End If
    On Error Goto 0
End Sub

使用说明:

按键“是”打开代理 按键“否”关闭代理

会显示当前代理的状态

微信截图_20250814233816.png