2016-07-06 12 views
1

私はVBScriptに少し助けが必要です。私はプロキシ設定を無効にして有効にしています。私は何をしたいのですかスクリプトは、プロキシの現在の設定がオフであるかどうかをユーザに知らせるものです。そうしたい場合はクリックしてyes/noを変更しますか?または、プロキシがオフになっているか、プロキシがオンになっていると言いたいと思います。プロキシを切り替える前にプロンプ​​トを表示

私はメッセージボックスを作る方法を知っています。私はコードをどこに置くべきかわかりません。

これは私のテキストボックスのコードです:私は少しあなたのコードを再編成しましたが、あなたならば、これはあなたが選択できるようにする必要があり

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 

答えて

1

result = Msgbox("Proxy is now set to off", vbOKonly+vbInformation, "") 

そして、これがプロキシ変更コードですプロキシをオンまたはオフに切り替えることを望みます。

一部の変更点が含まれています。

  • Constantに変更されない再利用された文字列を移動する。
  • Main()というサブプロシージャのメインロジックをラップすることによって、スクリプトを単一の実行ポイントにする。次に、そのプロシージャへの呼び出しが、WScript.Shell宣言以外のグローバルスコープで実行する唯一のコードであることを確認します。
  • CurrentProxy()の戻り値をブール値に変換すると、オフとオンの動作が簡単に切り替わります。
  • Arrayを使用して、コードの重複を避けるためにMsgBox()で使用されている単語のバリエーションを格納します。
Option Explicit 
Dim WSHShell, strSetting 
Set WSHShell = WScript.CreateObject("WScript.Shell") 

'Store strings that will not change and are reused in constants 
Const APPNAME = "Proxy Setting" 
Const PROXY_SETTING = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable" 

'Have main procedure to be single point of script execution. 
Call Main() 

Sub Main() 
    'Convert return value to Boolean to make it easy to do toggle. 
    Dim setting: setting = CBool(CurrentProxy()) 
    Dim state 
    'Use array to store wordy bits that will be used by the Message Box. 
    If setting Then 
    state = Array("enabled", "off") 
    Else 
    state = Array("disabled", "on") 
    End If 
    If MsgBox("Proxy is " & state(0) & vbCrLf & "Do you wish to switch it " & state(1), vbYesNo + vbQuestion, APPNAME) = vbYes Then 
    'Toggle is opposite of current state so use Not. 
    Call ToggleProxy(Not setting) 
    Call MsgBox("Proxy has switched " & state(1), vbInformation, APPNAME) 
    End If 
End Sub 

'Determine current proxy setting and toggle to oppisite setting 
Function CurrentProxy() 
    Dim strSetting 
    strSetting = WSHShell.RegRead(PROXY_SETTING) 
    CurrentProxy = strSetting 
End Function 

'Joined Proxy and NoProxy together into one procedure call and pass in the 
'ProxyEnable setting as an argument. 
'Subroutine to Toggle Proxy Setting to ON 
Sub ToggleProxy(setting) 
    'Abs() function makes sure we only pass back 1 or 0 as Boolean True in 
    'VBScript is actually -1. 
    WSHShell.RegWrite PROXY_SETTING, Abs(setting), "REG_DWORD" 
End Sub 
+0

ありがとうございました!私はこれを手伝っていましたが、私はVBSの方がやや新しく、他の人や投稿から掃除したり、必要に応じて少し変更したりすることができます。これは助けに感謝しますが、これは素晴らしいことです。 –

+0

@ JoshC問題はありませんが、将来的にスクリプトを構成する場合は、正しい方向にあなたを指摘してくれることを願っています。 – Lankymart

関連する問題