http://dieseyer.de • all rights reserved • © 2011 v11.4

'*** v8.1 *** www.dieseyer.de ****************************
'
' Datei: usbporttest.vbs
' Autor: dieseyer@gmx.de
' Auf: www.dieseyer.de
'
' aus
' http://www.source-center.de/forum/showthread.php?t=37854
' CMDR 080107
'
' Gibt 'BESCHEID!', wenn sich an einem der USB-ports 'etwas'
' bewegt.
'
' Allgemeines Problem der Überwachung von Events:
' Das Skript 'steht' bei der Überwachung in der Do..Loop-
' Schleife, wodurch keine (anderen) Aktionen vom Skript
' ausgelöst oder ausgewertet werden können. Also lässt sich
' das Skript nur _nach_ einem Event beenden - wie hier mit
' " If Taste = vbNo then Exit Do"
'
'*********************************************************

Option Explicit

'******** USB-Sentry.vbs CMDR 080108 *********
Dim objShell, objWMIService, colMonitoredProcesses
Dim strLatestProcess, USBDev, Taste, mld

set objShell = CreateObject( "WScript.Shell" )
objShell.PopUp "Die USB-Anschlüsse werden überwacht!", 5, "HINWEIS", vbSystemModal + vbInformation
Set objWMIService = GetObject( "Winmgmts:{impersonationLevel=impersonate}" )
Set colMonitoredProcesses = objWMIService.ExecNotificationQuery ( "SELECT * FROM __InstanceOperationEvent WITHIN 5 WHERE TargetInstance ISA ""Win32_USBHub""" )

Do
Set strLatestProcess = colMonitoredProcesses.NextEvent
USBDev=strLatestProcess.TargetInstance.Name

Select Case strLatestProcess.Path_.Class
Case "__InstanceCreationEvent"
mld = USBDev & vbLf & "wurde angeschlossen !"
Case "__InstanceModificationEvent"
mld = USBDev & vbLf & "wurde in der Einstellung geändert!"
Case "__InstanceDeletionEvent"
mld = USBDev & vbLf & "wurde abgezogen !"
End Select
' Taste = objShell.PopUp ( mld & vbLf & vbLf & " --> Überwachung fortsetzen ?", 10, "MELDUNG", vbSystemModal + vbExclamation + vbYesNo )
Taste = objShell.PopUp ( strLatestProcess.Path_.Class & vbLf & vbLf & " --> Überwachung fortsetzen ?", 10, "MELDUNG", vbSystemModal + vbExclamation + vbYesNo )
If Taste = vbNo then Exit Do
Loop

objShell.PopUp "USB-Überwachung beendet!", 5, "ENDE", vbSystemModal

http://dieseyer.de • all rights reserved • © 2011 v11.4