3

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

我需要一些代码,它能够告诉我当前客户机器上正在运行什么样的 TS。是否可以?

4

2 回答 2

5

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

于 2010-12-22T09:38:26.000 回答
0

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

任务计划程序的安装位置

任务计划程序随多个 Microsoft 操作系统自动安装。

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

任务计划程序 2.0 随 Windows Vista 和 Windows Server 2008 一起安装。

于 2010-12-22T09:28:38.147 回答