0

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
4

2 に答える 2

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
于 2013-10-23T12:53:57.907 に答える
0

プロキシを無効にすると、非表示の vbs (インスタンス化さRunれたオブジェクトのメソッド) が開始され、 5 分間WScript.Shell待機してからプロキシが有効になります。WScript.Sleep

編集

コードで、プロキシを無効にした後

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"
于 2013-10-23T09:37:57.757 に答える