使用任务计划程序托管包装的计划任务
本文关键字:计划 任务 包装 程序 | 更新日期: 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 ) {
...
}
}