¿ITaskScheduler es compatible con Windows 7?

Is ITaskScheduler compatible con Windows 7?

He usado el Programador de tareas en Windows XP y Windows Vista para crear tareas programadas.

En Windows 7, el trabajo se crea (correctamente), por ejemplo:

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

Pero la tarea nunca se ejecuta y no aparece en la interfaz de usuario del Programador de tareas (Inicio -> Programador de tareas):

enter image description here

Nota: Según MSDN, ITaskScheduler es parte del ahora obsoleto API de Task Scheduler 1.0. Las nuevas aplicaciones deben usar ITaskService, Parte de Programador de tareas 2.0.

Como ITaskScheduler no funciona (para mí) en Windows 7 (pero funcionó en Windows Vista) Me pregunto si ya no es compatible (aunque los objetos COM existen, el código no causa errores y crea el trabajo).

Si bien MSDN no incluye Windows 7 en la lista de sistemas operativos compatibles con el Programador de tareas 1.0, ni siquiera dice que Windows 7 sea compatible con el Programador de tareas 2.0:

Requisitos de tiempo de ejecución

El Programador de tareas requiere los siguientes sistemas operativos.

  • Programador de tareas 1.0: el cliente requiere Windows Vista, Windows XP, Windows 2000 Professional, Windows Me o Windows 98. El servidor requiere Windows Server 2008, Windows Server 2003 o Windows 2000 Server.
  • Programador de tareas 2.0: el cliente requiere Windows Vista. El servidor requiere Windows Server 2008.

Así que oficialmente no se admite ninguna API de programador de tareas en Windows 7.

Pero es ITaskScheduler compatible con Windows 7?

¿Se espera que funcione?

A juzgar por los comentarios de la comunidad sobre el Programador de tareas página principal, Supongo que no:

Programador de tareas 1.0 en Windows Vista, Windows 7, etc.
¿Es realmente posible utilizar el Programador de tareas 1,0 en Windows Vista y Windows 7? ¿Cómo puede hacerse esto?

Solución alternativa del Programador de tareas para Win7
Tengo el mismo problema con el Programador de tareas de Win7: la creación de una tarea simple para iniciar un script / programa no funciona.

Exporté mi tarea que no funcionaba así como una tarea de MS que funcionaba y las comparé. Cambié el siguiente parámetro en mi tarea exportada y lo volví a importar y ahora funciona: cierto

Esta solución me está ayudando por ahora.

Otros pensamientos: ¿No parece haber una configuración de GUI del Programador de tareas para afectar este parámetro? La descripción de la API implicaba que una configuración de falso debería funcionar, pero por alguna razón no es así. Es difícil creer que exista una sobrevaloración tan fundamental; ¿Podría ser algo más con mi configuración de Win7 que requiera la configuración real? Me parece recordar el mismo problema con una instalación nueva de Vista en el pasado que se resolvió misteriosamente antes de que investigara una solución alternativa. Hmmm ... creo que también leí que el nuevo motor de programación asociado con la configuración real curiosamente no admite cosas como la programación mensual ...?

La programación de tareas en Windows 7 falla pero funciona en Windows XP Pro
Tengo una tarea programada que se ejecuta perfectamente bien en Windows XP Pro, pero la misma tarea en Windows 7 devuelve un "0x2" en "Resultado de la última ejecución". Según el comando de la línea de comandos, "net helpmsg 2", "0x2" equivale a "El sistema no puede encontrar el archivo especificado".

Ciertamente puedo encontrar el archivo, y la ruta que utilizo en la pestaña Acciones ha sido revisada, revisada nuevamente, revisada dos veces y verificada tres veces.

He leído innumerables publicaciones en múltiples foros sobre este tema. Todavía tengo que encontrar una respuesta satisfactoria.

La acción que se supone que debe ejecutar la tarea es un archivo .bat que llama a un script de Perl. El script Perl escribe uno de los siguientes tipos de archivo, .txt, .csv y .xml. La ejecución del archivo .bat desde la línea de comandos funciona perfectamente; sin embargo, una vez que se coloca en una tarea programada de Windows 7, devuelve 0x2. Esta misma tarea en Windows XP Pro funciona como un campeón. ¿Qué tienen las tareas de Windows 7 que dificultan su ejecución con éxito?

preguntado el 16 de mayo de 11 a las 19:05

Bueno, lo que MS hizo con el programador de tareas en los últimos años no es bonito, pero lo más fácil de averiguar es simplemente interrogar a COM para averiguar si una interfaz es compatible. Si es así, el contrato garantiza que puede usarlo como se anuncia. Sin embargo, en el pasado tuve problemas con el programador de tareas entre varias versiones de Windows y básicamente terminé envolviendo la funcionalidad que necesitaba en una clase que luego ocultaría los detalles desagradables ... -

Cada llamada regresa S_OK. Como dije, el código funciona, las llamadas no fallan, el *.job se crea, pero nunca se ejecuta y no aparece en ninguna interfaz de usuario para poder ejecutarlo manualmente. Una vez creado, puedo llamar taskScheduler.Activate(taskName, ...) to load it, task.Run` para ejecutarlo, y .EditWorkItem(0, 0) para mostrar un cuadro de diálogo de propiedades del Programador de tareas del elemento. Pero nunca se ejecuta y no aparece en el Programador de tareas: ¿API mitad zombie? -

absolutamente suena como una API medio zombi: - | ... aún más aterrador que nadie en MS se sienta obligado a responder a los comentarios allí. Lo siento, no puedo ser de gran ayuda más allá del consejo de encapsular lo que necesita en una clase que oculta los detalles específicos de la plataforma. -

1 Respuestas

Después de Vista, debe utilizar la interfaz del Programador de tareas 2.0 en lugar de la 1.0. Parcialmente puede manejar el w7 de la antigua aplicación de programación, pero ha habido muchas diferencias entre ellas.

Si necesita crear un programador multiplataforma (xp / vista / w7 / w8), debe manejar la versión del sistema operativo y las interfaces. Mucho trabajo extra, pero mejor que crear una solución con una interfaz antigua.

Respondido 11 Abr '13, 18:04

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.