Rubrik: System/Windows · Prozesse/Tasks | VB-Versionen: VB6 | 26.11.10 |
Windows Aufgabe prüfen Mit dieser Funktion prüfen Sie, ob eine bestimmte Windows-Aufgabe, die Sie als AT-Task angelegt haben, existiert. | ||
Autor: Dieter Otter | Bewertung: | Views: 8.636 |
www.tools4vb.de | System: Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Vor ein paar Tagen haben wir Ihnen einen Code vorgestellt, mit dem sich eigene Windows-Aufgaben im Windows-Taskplaner (Aufgabenplanung) erstellen lassen:
Windows Aufgabe erstellen
Heute zeigen wir, wie man prüft, ob eine bestimmte Windows-Aufgabe (AT-Task) bereits existiert, damit diese nicht "aus Versehen" zweimal erstellt wird.
Auch diesmal setzen wir wieder die WMI-Schnittstelle von Windows ein.
Fügen Sie nachfolgenden Code in ein Modul ein:
' Prüft, ob der angegebene Task in der ' Task-Planung von Windows existiert ' ' Geprüft wird hierbei nach dem Aufruf-Paramter (CommandLine) Public Function NTTaskExists(ByVal sCmdLine As String, _ Optional ByVal sComputer As String = ".") As Boolean Dim oList As Object Dim oTask As Object ' Fehlerbehandlung On Error GoTo ErrHandler ' alle AT-Tasks durchlaufen Set oList = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ sComputer & "\root\cimv2").InstancesOf("Win32_ScheduledJob") For Each oTask In oList If LCase$(oTask.Command) = LCase$(sCmdLine) Then NTTaskExists = True End If Next ' Objekte freigeben Set oTask = Nothing Set oList = Nothing On Error GoTo 0 Exit Function ErrHandler: Set oTask = Nothing Set oList = Nothing End Function
Aufrufbeispiel:
Bevor eine neue Aufgabe im Taskplaner von Windows erstellt werden soll, prüfen wir zunächst, ob diese nicht bereits existiert.
' Anwendung mit Aufrufparameter Dim sCmdLine As String sCmdLine = "D:\MyExe.exe backup" ' Prüfen, ob die Aufgabe bereits existiert If NTTaskExists(sCmdLine) Then MsgBox "Die Aufgabe existiert bereits!" Else ' Aufgabe existiert noch nicht... jetzt erstellen nResult = NTTaskCreate("D:\MyExe.exe backup", "20:40", True, _ EnumDays.Tuesday Or EnumDays.Thursday) If nResult <> 0 Then MsgBox "Fehler " & CStr(nResult) & vbCrLf & "Die Aufgabe konnte nicht erstellt werden!" Else MsgBox "Aufgabe wurde ordnungsgemäß erstellt!" End If End If