Nano Hash - криптовалюты, майнинг, программирование

Поддерживается ли ITaskScheduler в Windows 7?

Поддерживается ли ITaskScheduler в Windows 7 ?

Я использовал планировщик задач в Windows XP и Windows Vista для создания запланированных задач.

В Windows 7 задание создается (правильно), например:

C:\Windows\Tasks\Foo Test Task.job

Но задача никогда не запускается и не отображается в пользовательском интерфейсе планировщика заданий (Пуск -> Планировщик заданий):

введите описание изображения здесь

Примечание. Согласно MSDN, ITaskScheduler является частью устаревшего Task Scheduler 1.0 API. Новые приложения должны использовать ITaskService, часть Планировщика заданий 2.0.

Поскольку ITaskScheduler не работает (для меня) под Windows 7 (но работал под Windows Vista), мне интересно, не поддерживается ли он больше (хотя COM-объекты существуют, код не вызывает ошибок и создает задание).

Хотя MSDN не включает Windows 7 в список поддерживаемых ОС для Task Scheduler 1.0, он также даже не говорит, что Windows 7 поддерживает Task Scheduler 2.0:

Требования к времени выполнения

Планировщик заданий требует следующих операционных систем.

  • Планировщик заданий 1.0: для клиента требуется Windows Vista, Windows XP, Windows 2000 Professional, Windows Me или Windows 98. Для сервера требуется Windows Server 2008, Windows Server 2003 или Windows 2000 Server.
  • Планировщик заданий 2.0: клиенту требуется Windows Vista. Сервер требует Windows Server 2008.

Таким образом, официально в Windows 7 не поддерживается API планировщика задач.

Но ITaskScheduler поддерживается ли Windows 7?

Ожидается, что это сработает?

Судя по комментариям сообщества к Планировщик заданий на главной странице, я думаю, что нет:

Планировщик заданий 1.0 под Windows Vista, Windows 7 и т. д.
Действительно ли можно использовать Планировщик заданий 1.0 под Windows Vista и Windows 7? Как это сделать?

Обход планировщика заданий для Win7
У меня такая же проблема с планировщиком заданий Win7 - создание простой задачи для запуска сценария / программы не работает.

Я экспортировал свою нерабочую задачу, а также рабочую задачу MS и сравнил их. Я изменил следующий параметр в экспортированной задаче и повторно импортировал его, и теперь он работает: ‹UseUnifiedSchedulingEngine> true ‹/UseUnifiedSchedulingEngine>

Этот обходной путь пока помогает мне.

Другие мысли: Кажется, нет настройки графического интерфейса планировщика заданий, чтобы повлиять на этот параметр? Описание API подразумевает, что установка false должна работать, но по какой-то причине это не так? Трудно поверить в существование такого фундаментального упущения; может быть что-то еще с моей настройкой Win7, требующее истинных настроек? Я, кажется, припоминаю ту же проблему с новой установкой Vista в прошлом, которая была таинственным образом решена до того, как я исследовал способ ее решения. Хммм ... Думаю, я также читал, что новый механизм планирования, связанный с истинными настройками, как ни странно, не поддерживает такие вещи, как ежемесячное планирование ....?

Расписание задач в Windows 7 не работает, но работает в Windows XP Pro
У меня есть запланированное задание, которое отлично выполняется в Windows XP Pro, но та же задача в Windows 7 возвращает «0x2» в разделе «Последний» Результат выполнения ». Согласно команде командной строки «net helpmsg 2», «0x2» означает «Система не может найти указанный файл».

Я определенно могу найти файл, и путь, который я использую на вкладке «Действия», был проверен, перепроверен, перепроверен и проверен дважды.

Я прочитал бесчисленное количество сообщений на разных форумах по этой проблеме. Я еще не нашел удовлетворительного ответа.

Действие, которое должна выполнить задача, представляет собой файл .bat, вызывающий сценарий Perl. Сценарий Perl записывает по одному из следующих типов файлов: .txt, .csv и .xml. Выполнение файла .bat из командной строки работает отлично; однако, как только он помещен в запланированную задачу Windows 7, он возвращает 0x2. Та же самая задача под Windows XP Pro работает как чемпион. Что такого особенного в задачах Windows 7, которые затрудняют успешное выполнение?


  • Что ж, то, что MS делала с планировщиком задач за последние несколько лет, выглядит некрасиво, но проще всего выяснить, просто опросив COM, чтобы узнать, поддерживается ли интерфейс. Если это так, то договор гарантирует, что вы можете использовать его в соответствии с объявлением. Однако в прошлом у меня были проблемы с планировщиком задач между различными версиями Windows, и в конечном итоге я обернул нужную мне функциональность в класс, который затем скрывал уродливые детали ... 16.05.2011
  • Каждый вызов возвращает S_OK. Как я уже сказал, код работает, вызовы работают без сбоев, *.job создается, но он никогда не запускается и не отображается ни в одном пользовательском интерфейсе, чтобы его можно было запустить вручную. После его создания я могу вызвать taskScheduler.Activate(taskName, ...) to load it, task.Run` для его выполнения и .EditWorkItem(0, 0) для отображения диалогового окна свойств элемента в планировщике заданий. Но он никогда не запускается и не отображается в Task Scheduler - Half Zombie API? 16.05.2011
  • абсолютно похоже на API наполовину зомби: - | ... еще страшнее то, что никто в MS не чувствует себя обязанным отвечать на тамошние комментарии. Извините, я не могу оказать реальной помощи, кроме совета по инкапсуляции того, что вам нужно, в класс, который скрывает детали, специфичные для платформы. 16.05.2011

Ответы:


1

После Vista вам нужно использовать интерфейс Task Scheduler 2.0 вместо 1.0. Частично может справиться с w7 старым приложением-планировщиком, но между ними было много различий.

Если вам нужно создать кроссплатформенный (xp / vista / w7 / w8) планировщик, вам необходимо обработать версию операционной системы и интерфейсы. Много лишней работы, но лучше, чем создавать одно решение со старым интерфейсом.

11.04.2013
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..