如何使用Auto Schedular运行Windows应用程序

时间:2017-02-20 10:53:44

标签: c# .net vb.net

我在Dot-net中有一个Windows应用程序,它包含各种Analytics测试。当用户选择特定测试(复选框)并提交它(单击按钮)时,后端SQL查询将被执行,用户将获得该特定测试的结果集。

现在有一个要求是,用户将选择一个特定的测试,并给出一个时间戳(运行测试的时间),以使用自动调度程序获得输出的电子邮件ID(无需任何用户干预应用程序)。自动调度程序将在指定时间触发,并将运行特定的选定测试。

如何使用Windows应用程序实现自动调度程序?我正在尝试在Dot-net中创建Windows服务,但问题是该服务如何获取Windows应用程序的实例以及它将如何使用调度程序方法运行所选的测试?

据我了解,我只能使用调度程序运行脚本文件,因此如何在Dot-net中实现Windows应用程序的这些测试的自动调度。

1 个答案:

答案 0 :(得分:0)

您可以使用Task Scheduler Managed Wrapper。手动下载并从项目中引用或使用nuget包安装。示例源代码和更多信息可在此处找到:Creating Scheduled Tasks

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

干杯,