【问题标题】:How to distinguishing between Task Scheduler 1.0 and Task Scheduler 2.0?如何区分任务计划程序 1.0 和任务计划程序 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。但我认为这不是最好的方法。

标签: c# task scheduler scheduled-tasks


【解决方案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

    【讨论】:

      猜你喜欢
      • 2011-05-25
      • 2020-07-25
      • 1970-01-01
      • 1970-01-01
      • 2012-10-23
      • 2011-07-23
      • 1970-01-01
      • 2014-05-14
      • 2012-03-26
      相关资源
      最近更新 更多