使用任务计划程序托管包装的计划任务

本文关键字:计划 任务 包装 程序 | 更新日期: 2023-09-27 18:09:47

在过去的几天里,我做了很多关于检查是否存在计划任务的搜索,如果存在<insert awesome here>。基本上我有一个应用程序,安装和卸载我们的软件的计划任务。我现在需要做的是让一个复选框在任务存在的情况下被选中,不在的情况下被选中。有一个参考使用:

        ScheduledTasks st = new ScheduledTasks(server);
        string[] taskNames = st.GetTaskNames();
        List<string> jobs = new List<string>(taskNames);

对我不起作用,它说找不到scheduletasks名称空间。我相信我已经安装好了我需要的东西。"使用Microsoft.Win32.TaskScheduler;"

使用任务计划程序托管包装的计划任务

我没有在这个包装器中看到这个scheduletasks。

TaskScheduler Managed Wrapper使用一个服务习语,你需要有一个文件夹的上下文。

他们的文档中有很好的例子,包括列举所有任务的例子。

如果你想找到一个特定的任务:

var t = taskService.GetTask(scheduledTaskName); 
bool taskExists = t!=null;
if(taskExists) DoYourThing();

如果您的任务在文件夹中,则使用以下内容

var t = taskService.GetTask(taskFolder + "''" + scheduledTaskName);

要添加Dove的答案(我还没有代表评论),您还可以使用TaskScheduler的FindTask方法,如果您通过传递"True"作为第二个参数启用子文件夹内搜索,则可以忽略指定子文件夹的名称;例如,

using ( TaskService sched = new TaskService() ) {
    var task = sched.FindTask( "UniqueTaskName", true );
    if ( task != null ) {
        ...
    }
}