vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
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:  Views:  8.629 
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



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.