gpt4 book ai didi

.net - schtasks.exe 与 ITaskScheduler

转载 作者:行者123 更新时间:2023-12-01 13:07:58 24 4
gpt4 key购买 nike

我正在尝试编写一些代码来在机器上自动“配置”一堆计划任务。该程序将读取一个 XML 文件,然后根据 XML 文件中的信息“配置”任务的运行时间等。

这个想法应该是程序可以在机器上“运行”多次并自动“添加/删除”任何有效的更改。我想要这样做的方式如下:

  1. 所有任务都将带有一些特殊的“前缀”。当程序运行时,它会“删除”所有具有该前缀的任务,因为可以假定这些任务是由具有不同的早期配置的程序运行的。

  2. 程序然后“创建”新任务。

所以我的“配置”程序需要能够

  1. 获取机器上所有现有计划任务的列表
  2. 按名称删除任务
  3. 按名称创建新任务

如果能用C#写程序就最简单了。

似乎有两种方法可以做到这一点:

  1. C# 程序使用适当的命令行参数显式运行“schtasks.exe”程序。它“读取”并解析 schtasks.exe 的输出以获取现有任务的列表,以便它可以删除它们。然后再次运行 schtasks.exe 以创建新任务。

  2. 通过 .NET COM 包装器使用 ITaskManager 接口(interface)以编程方式查询和安排任务。

我更愿意选择 #2,但我怀疑这是“较旧”的功能 - 我在网络上可以找到的内容表明自 Windows NT 以来任务管理器功能得到了改进。

schtasks.exe 只是一个写在 ITaskManager COM 接口(interface)之上的命令行工具吗?或者是否有 schtasks.exe 可以执行而 ITaskManager 界面不能执行的操作?

ITaskManager 接口(interface)/COM 组件是否在计划任务文件夹中生成“.job”文件?

最佳答案

Windows Vista 中引入了新的 Task Scheduler 2.0,您可以使用 ITaskService 接口(interface)访问它。我相信 Schtasks.exe 是基于该 API 构建的。

为了向后兼容,TS 1.0 ITaskScheduler API 仍然有效。因此,使用哪一个取决于您需要定位的操作系统版本以及您是否需要 TS 2.0 的新功能。

关于.net - schtasks.exe 与 ITaskScheduler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1477088/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com