Instanzen einer Anwendung mit VBScript beenden
Zum Beenden einer Anwendung über ein Visual Basic Script, können Sie den folgenden Code verwenden. Dabei wird eine Verbindung zur Windows Management Instrumentation (WMI) aufgebaut. Von der WMI werden alle laufenden Instanzen des gewünschten Programms (hier notepad.exe) ermittelt. Im Anschluss werden alle gefundenen Instanzen mit der Methode Terminate() beendet.
Option Explicit
' Declaration of variables
Dim objWMIService
Dim colProcess
Dim objProcess
' Connect to Windows Management Instrumentation (WMI) object using a moniker
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
' Execute a query to get all running instances of specified application
Set colProcess = objWMIService.ExecQuery("Select * From Win32_Process Where Name = 'notepad.exe'")
' Terminate all running instances of the application
For Each objProcess In colProcess
objProcess.Terminate()
Next
' Deallocate used objects
Set objProcess = Nothing
Set objWMIService = Nothing
' Quit Visual Basic Script
WScript.Quit()
' Declaration of variables
Dim objWMIService
Dim colProcess
Dim objProcess
' Connect to Windows Management Instrumentation (WMI) object using a moniker
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
' Execute a query to get all running instances of specified application
Set colProcess = objWMIService.ExecQuery("Select * From Win32_Process Where Name = 'notepad.exe'")
' Terminate all running instances of the application
For Each objProcess In colProcess
objProcess.Terminate()
Next
' Deallocate used objects
Set objProcess = Nothing
Set objWMIService = Nothing
' Quit Visual Basic Script
WScript.Quit()
Wenn Sie diese Funktionalität in einem größeren VBScript verwenden wollen, können Sie diese auch mit einer eigenen Funktion umsetzen. Dies hat den Vorteil, dass Sie nur einmal die Funktion deklarieren müssen und diese beliebig oft einsetzen können. Beim Aufruf der folgenden Funktion müssen Sie nur die zu beendende Anwendung als Parameter übergeben.
Function TerminateApplication(strApplication)
' Declaration of variables
Dim objWMIService
Dim colProcess
Dim objProcess
' Connect to Windows Management Instrumentation (WMI) object using a moniker
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
' Execute a query to get all running instances of specified application
Set colProcess = objWMIService.ExecQuery("Select * From Win32_Process Where Name = '" & strApplication & "'")
' Terminate all running instances of the application
For Each objProcess In colProcess
objProcess.Terminate()
Next
' Deallocate used objects
Set objProcess = Nothing
Set objWMIService = Nothing
End Function
' Declaration of variables
Dim objWMIService
Dim colProcess
Dim objProcess
' Connect to Windows Management Instrumentation (WMI) object using a moniker
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
' Execute a query to get all running instances of specified application
Set colProcess = objWMIService.ExecQuery("Select * From Win32_Process Where Name = '" & strApplication & "'")
' Terminate all running instances of the application
For Each objProcess In colProcess
objProcess.Terminate()
Next
' Deallocate used objects
Set objProcess = Nothing
Set objWMIService = Nothing
End Function
Der Aufruf der Funktion erfolgt durch die folgende Codezeile. Die Anwendung (hier notepad.exe) können Sie entsprechend anpassen.
TerminateApplication("notepad.exe")
Dieser Eintrag wurde am 11.01.2014 erstellt und zuletzt am 15.01.2014 bearbeitet.
Direkter Link zu dieser Seite: http://www.gtkdb.de/index_29_2479.html
[ Zur Startseite ] [ Zur Kategorie ]
© 2004-2021 by Georg Kainzbauer