TaskScheduler GetTask File not Found

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 24 Antworten in diesem Thema. Der letzte Beitrag () ist von Toolmaster.

    Hallo,
    Im Prinzip ist es nicht viel.

    VB.NET-Quellcode

    1. Public Sub Task_Exists(ByVal Task_Pfad As String, ByVal Taskname As String)
    2. Dim ts As New TaskScheduler.TaskScheduler
    3. ts.Connect(Nothing, Nothing, Nothing, Nothing)
    4. Dim rootFolder As ITaskFolder = ts.GetFolder("\" & Task_Pfad)
    5. For Each tsk As IRegisteredTask In rootFolder.GetTasks(0)
    6. If tsk.Name = Taskname Then
    7. MsgBox("Task Gefunden")
    8. Exit For
    9. End If
    10. Next
    11. End Sub

    So erfolgt der Aufruf:

    VB.NET-Quellcode

    1. Task_Exists("Microsoft\Windows\Application Experience", "StartupAppTask")


    Rufe ich jetzt die Sub aber mit einem Falschen Pfad auf kommt es zu der IO. Fehlermeldung die ich nicht abfanken kann auser mit try catch.
    @Toolmaster Jou, genau dafür gibt es Try / Catch:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. 'If Task_Exists("Microsoft\Windows\Application Experience", "StartupAppTask") Then
    3. 'If Task_Exists("Microsoft\Windows\Application Experience", "Bla") Then
    4. If Task_Exists("Microsoft\Windows\Application", "Bla") Then
    5. MessageBox.Show("Task Gefunden")
    6. Else
    7. MessageBox.Show("Task nicht Gefunden")
    8. End If
    9. End Sub
    10. Public Function Task_Exists(ByVal Task_Pfad As String, ByVal Taskname As String) As Boolean
    11. Dim ts As New TaskScheduler.TaskScheduler
    12. ts.Connect(Nothing, Nothing, Nothing, Nothing)
    13. Dim rootFolder As ITaskFolder = Nothing
    14. Try
    15. rootFolder = ts.GetFolder("\" & Task_Pfad)
    16. Catch ex As System.IO.FileNotFoundException
    17. Return False
    18. End Try
    19. For Each tsk As IRegisteredTask In rootFolder.GetTasks(0)
    20. If tsk.Name = Taskname Then
    21. Return True
    22. End If
    23. Next
    24. Return False
    25. End Function
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Toolmaster schrieb:

    VB.NET-Quellcode

    1. If Directory.Exists Then
    bezieht sich auf Verzeichnisse auf einem Datenträger, der einen Laufwerksbuchstaben hat.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!