1

次のリソースを自由に使用できます。

VBScript、WMI クエリ、レジストリ キー/値、.bat バッチ ファイル

これらのリソースの任意の組み合わせを使用して、コンピューターがネットワークとの接続を再確立したときに .bat ファイルをトリガーするある種のイベント リスナーを作成する必要があります。

私は常にマシンがネットワークを変更しているラボで働いており、BGinfo.exe を使用して、コンピューターがどのネットワーク上にあるかを背景画像に表示しています。私がやろうとしているのは、ネットワークが接続を失って再接続するかどうかを確認するリスナーを設定し、バッチ ファイルを再実行してバックグラウンドを更新することです。

どうすれば次のようなことができますeventListener.on('connection', goIntoSomeCallbackFunction)か? VBscript を使用してこれが不可能な場合、代替手段はありますか?

4

1 に答える 1

0

これが私の解決策です:

dim shell, ip
set shell=createobject("wscript.shell")


function main()

Dim status, result

result = False


'Here we have to loop every few seconds to look at connectivity
Do

result = statusChanged() 

If result Then
    shell.Run "D:\tools\Batches\updateBG.bat"
End If

WScript.Sleep(1000)

Loop While True

End function

function statusChanged()

Dim found, status

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration")

status = False
found = False

For Each result in colItems
    If Not isNull(result.IPAddress) Then
        If ip <> result.IPAddress(0) Then
            ip = result.IPAddress(0)
            status = True
        End If
    End If
Next

statusChanged = status

End function

main()
于 2013-06-12T21:14:33.090 に答える