我有一个示例代码来启用/禁用IE上的代理。
我想在此脚本上使用计时器。
如果启用了代理,并且如果用户使用以下脚本禁用代理,则在5分钟后,代理将自动再次激活。脚本手动执行此操作,但我想使用计时器自动执行。
如果代理已启用,则无需任何操作。它将始终启用。
感谢您的帮助
Const HKEY_CURRENT_USER = &H80000001
Set objShell = CreateObject("WScript.Shell")
strPC = objShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
On Error Resume Next
Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!
\\.\root\default:StdRegProv")
strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Internet Settings"
strValueName = "ProxyEnable"
objReg.GetDWORDValue HKEY_CURRENT_USER,strKeyPath,strValueName,dwValue
If dwValue = 1 Then
IEPrompt = MsgBox ("IE Proxy is currently ENABLED on " & strPC & _
". Do you want to DISABLE it?", vbQuestion+vbYesNo, "Disable IE Proxy")
If IEPrompt = vbYes Then
dwValue = 0
objReg.SetDWORDValue HKEY_CURRENT_USER,strKeyPath,strValueName,dwValue
MsgBox "IE Proxy is now DISABLED on " & strPC & _
".",vbInformation, "Disable IE Proxy"
ElseIf IEPrompt = vbNo Then
MsgBox "IE Proxy is still ENABLED on " & strPC & _
".",vbInformation, "Disable IE Proxy"
End If
ElseIf dwValue = 0 Then
IEPrompt = MsgBox ("IE Proxy is currently DISABLED on " & strPC & _
". Do you want to ENABLE it?", vbQuestion+vbYesNo, "Enable IE Proxy")
If IEPrompt = vbYes Then
dwValue = 1
objReg.SetDWORDValue HKEY_CURRENT_USER,strKeyPath,strValueName,dwValue
MsgBox "IE Proxy is now ENABLED on " & strPC & _
".",vbInformation, "Enable IE Proxy"
ElseIf IEPrompt = vbNo Then
MsgBox "IE Proxy is still DISABLED on " & strPC & _
".",vbInformation, "Enable IE Proxy"
End If
End If
答案 0 :(得分:0)
禁用代理时,在Run
实例化对象中启动隐藏的vbs(WScript.Shell
方法),等待(WScript.Sleep
)5分钟,然后启用代理。
修改
在您的代码中,禁用代理
之后WScript.CreateObject("WScript.Shell").Run "wscript.exe waitandenableproxy.vbs", 0, false
在waitandenableproxy.vbs
WScript.Sleep 300000
WScript.CreateObject("WScript.Shell").RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable", 1, "REG_DWORD"
答案 1 :(得分:0)
怎么样?
Option Explicit
Const HKCU = &H80000001
Const KEY = "Software\Microsoft\Windows\CurrentVersion\Internet Settings"
Const VALUE = "ProxyEnable"
Const TITLE = "Disable IE Proxy"
Const DELAY = 300000 '5 minutes in milliseconds
Dim wmi
Dim iProx
Set wmi = GetObject("winmgmts:\\.\root\default:StdRegProv")
Call wmi.GetDWordValue(HKCU,KEY,VALUE,iProx)
Select Case iProx
Case 1:
If MsgBox("Proxy is enabled. Do you want to disable it?", vbQuestion+vbYesNo, TITLE) = vbYes Then
'disable, delay, then re-enable
Call wmi.SetDwordValue(HKCU,KEY,VALUE,0)
Call WScript.Sleep(DELAY)
Call wmi.SetDwordValue(HKCU,KEY,VALUE,1)
End If
Case 0:
If MsgBox("Proxy is disabled. Do you want to enable it?", vbQuestion+vbYesNo, TITLE) = vbYes Then
Call wmi.SetDwordValue(HKCU,KEY,VALUE,1)
End If
End Select
Set wmi = Nothing
WScript.Quit