【问题标题】:Creating Scheduled Tasks创建计划任务
【发布时间】:2011-11-15 17:25:18
【问题描述】:

我正在开发一个 C# WPF 项目。我需要允许用户创建计划任务并将其添加到 Windows 任务计划程序。

我该怎么做呢?我需要什么指令和引用,因为我在网上搜索时找不到太多东西。

【问题讨论】:

标签: c# wpf scheduled-tasks


【解决方案1】:

你可以使用Task Scheduler Managed Wrapper:

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");
      }
   }
}

您也可以使用native API 或使用Quartz.NET。详情请见this

【讨论】:

  • 是的,您需要下载并引用Microsoft.Win32.TaskScheduler.dll。链接在答案中。
  • @Dmitry 你如何开始一个任务?你需要用windows scheduler什么的注册吗?
  • 这比尝试通过调用命令行进程创建它要好得多
  • 我看到参考是win32的,如果我的服务器是64位呢?
  • 由于 CodePlex 将在几个月后关闭,请注意任务计划程序托管包装器的 NuGet 页面,地址为 nuget.org/packages/TaskScheduler
【解决方案2】:

这对我有用 https://www.nuget.org/packages/ASquare.WindowsTaskScheduler/

它是精心设计的 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();

【讨论】:

    猜你喜欢
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    • 1970-01-01
    相关资源
    最近更新 更多