任务计划程序在 C# 中系统启动时触发

本文关键字:系统启动 计划 程序 任务 | 更新日期: 2023-09-27 18:35:48

我创建了一个任务调度程序并将其触发时间设置为固定,例如每天-下午 5:00,但我想在系统启动或启动时触发该事件。如果您有任何示例,请帮助我编写代码。

提前谢谢。

法典:------------------------------------------------------

 public static void CreateTask()
        {
            using (TaskService task = new TaskService())
            {`enter code here`
                TaskDefinition taskdDef = task.NewTask();
                taskdDef.RegistrationInfo.Description = "Does something";
                taskdDef.RegistrationInfo.Documentation = "http://www.mysite.com";
                taskdDef.Settings.ExecutionTimeLimit = new TimeSpan(0, 10, 0);
                taskdDef.Settings.AllowDemandStart = true;
                taskdDef.Actions.Add(new ExecAction(@"D:'Myfolder'bin'SGSclient.exe", "yourArguments", null));
                task.RootFolder.RegisterTaskDefinition("YourTask", taskdDef);
            }
        }

任务计划程序在 C# 中系统启动时触发

使用 GitHub 的任务计划程序管理器库,你可以这样写

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 after the system boot
         td.Triggers.Add(new BootTrigger() );
         // 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");
      }
   }
}

您可以将其作为启动任务添加到注册表中。看这里。

2000, XP

开始 ->设置 ->控制面板 -> 计划任务
打开任务的属性。
打开"计划"选项卡。
从"计划任务"下拉列表中选择"系统启动时"。

前景

开始 ->设置 ->控制面板 ->管理工具 ->任务计划程序
打开任务的属性。
打开"触发器"标签,然后修改或创建触发器。
从"开始任务"下拉列表中选择"启动时"。

你应该做一个Windows服务。