vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: System/Windows · Prozesse/Tasks   |   VB-Versionen: VB626.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 OtterBewertung:     [ Jetzt bewerten ]Views:  8.603 
www.tools4vb.deSystem:  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