Как отличить планировщик заданий 1.0 от планировщика заданий 2.0?

У меня есть приложение С#, которое использует планировщик заданий 1.0 (файлы .job). Мне нужно расширить приложение для поддержки Task Scheduler 2.0 (xml).

Мне нужен какой-то код, который может сказать мне, какой тип T.S. работает на текущей клиентской машине. Является ли это возможным?


person radbyx    schedule 22.12.2010    source источник
comment
Обходной путь может заключаться в том, чтобы спросить, является ли машина Vista, Windows Server 2008 или Windows 7, а затем использовать планировщик заданий 2.0. Но я не думаю, что это лучший путь.   -  person radbyx    schedule 22.12.2010


Ответы (2)


Планировщик заданий 2.0 представляет интерфейс ITaskService и поддержку сценариев. Таким образом, вы можете попробовать, существует ли COM-объект для этого класса или нет. Например,

var t = Type.GetTypeFromProgID("Schedule.Service");
if (null != t) 
{
   // we definitely have 2.0 version
}
else
{
  // 1.0 version
}

Отказ от ответственности: непроверенный код. Я взял идентификатор программы из примера MSDN: http://msdn.microsoft.com/en-us/library/aa446862(v=VS.85).aspx

person VinayC    schedule 22.12.2010

Вы можете покопаться в различных версиях schedsvc.dll (это файл, который фактически содержит код планировщика задач), но обходной путь, который вы упомянули, касается определения версии ОС машины, а затем принятия решения о том, какую версию планировщика задач использовать. один. Из документа по адресу http://msdn.microsoft.com/en-us/library/aa446802(VS.85).aspx,

Где установлен планировщик заданий

Планировщик заданий автоматически устанавливается с несколькими операционными системами Microsoft.

Планировщик заданий 1.0 устанавливается вместе с операционными системами Windows Server 2003, Windows XP и Windows 2000.

Планировщик заданий 2.0 устанавливается вместе с Windows Vista и Windows Server 2008.

person weloytty    schedule 22.12.2010