it-swarm.com.de

Geplante Aufgaben erstellen

Ich arbeite an einem C # WPF-Projekt. Ich muss dem Benutzer erlauben, eine geplante Aufgabe zu erstellen und dem Windows-Aufgabenplaner hinzuzufügen.

Wie könnte ich das machen und was brauche ich für Anweisungen und Verweise, da ich beim Durchsuchen des Internets nicht viel finde.

139
Boardy

Sie können Task Scheduler Managed Wrapper verwenden:

using System;
using Microsoft.Win32.TaskScheduler;

class Program
{
   static void Main(string[] args)
   {
      // Get the service on the local machine
      using (TaskService ts = new TaskService())
      {
         // Create a new task definition and assign properties
         TaskDefinition td = ts.NewTask();
         td.RegistrationInfo.Description = "Does something";

         // Create a trigger that will fire the task at this time every other day
         td.Triggers.Add(new DailyTrigger { DaysInterval = 2 });

         // Create an action that will launch Notepad whenever the trigger fires
         td.Actions.Add(new ExecAction("notepad.exe", "c:\\test.log", null));

         // Register the task in the root folder
         ts.RootFolder.RegisterTaskDefinition(@"Test", td);

         // Remove the task we just created
         ts.RootFolder.DeleteTask("Test");
      }
   }
}

Alternativ können Sie eine native API verwenden oder sich für Quartz.NET entscheiden. Siehe dieses für Details.

202
Dmitry

Dies funktioniert für mich https://www.nuget.org/packages/ASquare.WindowsTaskScheduler/

Es ist schön gestaltete Fluent API.

//This will create Daily trigger to run every 10 minutes for a duration of 18 hours
SchedulerResponse response = WindowTaskScheduler
    .Configure()
    .CreateTask("TaskName", "C:\\Test.bat")
    .RunDaily()
    .RunEveryXMinutes(10)
    .RunDurationFor(new TimeSpan(18, 0, 0))
    .SetStartDate(new DateTime(2015, 8, 8))
    .SetStartTime(new TimeSpan(8, 0, 0))
    .Execute();
29
Uday Reddy