如何区分任务计划程序 1.0 和任务计划程序 2.0?

Posted

技术标签:

【中文标题】如何区分任务计划程序 1.0 和任务计划程序 2.0?【英文标题】:How to distinguishing between Task Scheduler 1.0 and Task Scheduler 2.0? 【发布时间】:2011-05-29 06:33:21 【问题描述】:

我有一个使用 Task Scheduler 1.0(.job 文件)的 C# 应用程序。 我需要扩展应用程序以支持 Task Scheduler 2.0 (xml)。

我需要一些代码,它能够告诉我什么样的 T.S.正在当前客户机器上运行。有可能吗?

【问题讨论】:

一种解决方法可能是询问 mashine 是 Vista、Windows Server 2008 还是 Windows 7,然后使用 Task Scheduler 2.0。但我认为这不是最好的方法。 【参考方案1】:

您可以浏览各种版本的 schedsvc.dll(这是实际托管任务调度程序代码的文件),但您提到的解决方法是确定机器的操作系统版本,然后决定使用哪个版本的任务调度程序是正确的。来自http://msdn.microsoft.com/en-us/library/aa446802(VS.85).aspx 的文档,

任务计划程序的安装位置

任务计划程序会自动 安装了几个微软 操作系统。

Task Scheduler 1.0 安装有 Windows Server 2003、Windows XP、 和 Windows 2000 操作系统。

Task Scheduler 2.0 安装有 Windows Vista 和 Windows Server 2008。

【讨论】:

【参考方案2】:

Task Scheduler 2.0 引入了 ITaskService 接口和脚本支持。所以你可以试试这个类的 COM 对象是否存在。例如,

var t = Type.GetTypeFromProgID("Schedule.Service");
if (null != t) 

   // we definitely have 2.0 version

else

  // 1.0 version

免责声明:未经测试的代码。我从 MSDN 示例中获取了 prog id:http://msdn.microsoft.com/en-us/library/aa446862(v=VS.85).aspx

【讨论】:

以上是关于如何区分任务计划程序 1.0 和任务计划程序 2.0?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 cmd 和日志文件在任务计划程序中调试此计划的 .bat 任务?

任务计划程序 2.0 将当前计划任务填充到 WPF GridView

任务计划程序-Windows2008定时重启

如何使用 C++ 在任务计划程序中创建任务

任务计划程序打开软件的原理

windows任务计划程序是怎么回事,有啥用途,该怎么设置??