Vbscript 切换代理前提示用户

Vbscript 切换代理前提示用户,vbscript,proxy,scripting,Vbscript,Proxy,Scripting,我需要一个VBScript来帮助我禁用和启用代理设置。我希望脚本告诉用户代理的当前设置是关闭还是打开,如果用户希望,他们可以单击“是否更改是/否”。或者我希望脚本告诉用户代理现在关闭或代理现在打开 我知道如何制作一个信息框,但我不知道该把代码放在哪里 这是我的文本框代码: result = Msgbox("Proxy is now set to off", vbOKonly+vbInformation, "") 这是代理更改代码: Option Explicit Dim WSHShell,

我需要一个VBScript来帮助我禁用和启用代理设置。我希望脚本告诉用户代理的当前设置是关闭还是打开,如果用户希望,他们可以单击“是否更改是/否”。或者我希望脚本告诉用户代理现在关闭或代理现在打开

我知道如何制作一个信息框,但我不知道该把代码放在哪里

这是我的文本框代码:

result = Msgbox("Proxy is now set to off", vbOKonly+vbInformation, "")
这是代理更改代码:

Option Explicit 
Dim WSHShell, strSetting
Set WSHShell = WScript.CreateObject("WScript.Shell")

'Determine current proxy setting and toggle to oppisite setting
strSetting = WSHShell.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable")
If strSetting = 1 Then
  NoProxy
Else
End If

'Subroutine to Toggle Proxy Setting to ON
Sub Proxy 
  WSHShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable", 1, "REG_DWORD" 
End Sub

'Subroutine to Toggle Proxy Setting to OFF
Sub NoProxy 
  WSHShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable", 0, "REG_DWORD"
End Sub

我重新组织了您的代码,但这应该允许您选择是否要打开或关闭代理

一些变化包括:

  • 移动不会变为
    常量的重复使用字符串
  • 通过将主逻辑包装到名为
    main()
    的子过程中,为脚本提供单点执行。然后确保对该过程的调用是我们在全局范围内运行的唯一代码,除了
    WScript.Shell
    声明
  • CurrentProxy()
    的返回值转换为布尔值可以更轻松地切换关闭和打开行为
  • 使用
    数组
    存储
    MsgBox()
    中使用的单词变体,以避免代码重复
选项显式
暗WSHShell,STRSETT
设置WSHShell=WScript.CreateObject(“WScript.Shell”)
'存储不会更改并在常量中重复使用的字符串
Const APPNAME=“代理设置”
Const PROXY\u SETTING=“HKCU\Software\Microsoft\Windows\CurrentVersion\Internet设置\ProxyEnable”
'使主过程成为脚本执行的单点。
调用Main()
副标题()
'将返回值转换为布尔值以便于切换。
尺寸设置:设置=CBool(CurrentProxy())
暗淡状态
'使用数组存储消息框将使用的冗长位。
如果设置为
状态=数组(“已启用”、“关闭”)
其他的
状态=数组(“禁用”、“打开”)
如果结束
如果MsgBox(“代理是”&状态(0)&vbCrLf&“您想切换它吗”&状态(1),vbYesNo+vbQuestion,APPNAME)=vbYes,则
'切换与当前状态相反,因此不使用。
调用切换代理(未设置)
调用MsgBox(“代理已切换”&状态(1)、vbInformation、APPNAME)
如果结束
端接头
'确定当前代理设置并切换到oppisite设置
函数CurrentProxy()
暗装
strSetting=WSHShell.regrad(代理设置)
CurrentProxy=strSetting
端函数
'将Proxy和NoProxy合并到一个过程调用中,并传入
'代理启用设置作为参数。
'将代理设置切换为打开的子例程
子切换代理(设置)
'Abs()函数确保在中仅将1或0作为布尔值True传回
'VBScript实际上是-1。
WSHShell.RegWrite PROXY_设置,Abs(设置),“REG_DWORD”
端接头

非常感谢!我一直在摆弄这一点,但我对VBS相当陌生,除了可以从其他人/帖子中搜寻并稍微修改我的需要之外,我没有其他经验。这很好,但非常感谢您的帮助。@JoshC没问题,希望它能为您指明未来构建脚本的正确方向。