如何区分任务计划程序 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 任务?