Good to Know Database

Programm ausführen und das Beenden abwarten


Wenn Sie in einem Visual Basic Script eine Anwendung ausführen wollen und auf das Beenden der Anwendung warten wollen, hilft Ihnen der im folgenden Artikel beschriebene Code weiter.

Das folgende Visual Basic Script öffnet zuerst eine WScript Shell und startet die gewünschte Anwendung (hier notepad.exe). Anschließend wird eine Verbindung zur Windows Management Instrumentation (WMI) aufgebaut. Die WMI wird jetzt kontinuierlich abgefragt, ob der Prozess notepad.exe beendet wurde. Tritt dieses Event ein, wird eine Meldung erzeugt und das VBScript beendet.

Option Explicit

' Declaration of variables
Dim objWScriptShell
Dim objWMIService
Dim colEvents
Dim objEvent

' Create WScript Shell object
Set objWScriptShell = WScript.CreateObject("WScript.Shell")

' Execute Notepad
objWScriptShell.Run "notepad.exe"

' Deallocate WScript Shell object
Set objWScriptShell = Nothing

' Connect to Windows Management Instrumentation (WMI) object using a moniker
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")

' Execute a query to monitor process deletion
Set colEvents = objWMIService.ExecNotificationQuery("Select * From __InstanceDeletionEvent " _
& "Within 1 Where TargetInstance ISA 'Win32_Process' And TargetInstance.Name = 'notepad.exe'")

' Wait for process deletion event
Set objEvent = colEvents.NextEvent

' Create notification if Notepad was closed
WScript.Echo "Notepad wurde soeben beendet."

' Deallocate event object
Set objEvent = Nothing

' Deallocate WMI object
Set objWMIService = Nothing

' Quit Visual Basic Script
WScript.Quit()


Dieser Eintrag wurde am 20.01.2013 erstellt.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_29_2079.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer