Tengo un proceso demonio que ejecuto en mi máquina cada hora, y aunque he marcado la Hidden
casilla, no funciona.
Cada hora, la tarea se ejecuta, pero muestra la ventana de comando negra, en la que se está ejecutando mi aplicación .NET Console. Esto permanece visible hasta que se completa la tarea y luego desaparece. Esto es muy molesto, porque aparece e interrumpe todo lo que estoy haciendo:
Realmente lo quiero oculto, entonces, ¿cómo puedo solucionar esto?
windows-7
task-scheduler
Joshua Frank
fuente
fuente
Respuestas:
Marque la casilla de verificación "Ejecutar si el usuario inició sesión o no" y el ejecutable se ejecutará en segundo plano.
fuente
¿Por qué la tarea programada de Windows 7 se ejecuta oculta? debería explicar por qué sucede esto.
Además, esta descripción de TechNet de Propiedades generales de la tarea establece:
¿No implica esto que la casilla de verificación solo oculta la tarea en sí de la IU del planificador y no el programa real que está programado?
fuente
Bien, después de un poco más de investigación, encontré esta respuesta en StackOverflow:
Un comentario señala que esto otorga todos los derechos a la tarea, lo que podría ser molesto, pero es aceptable en este caso.
Pero aún así, ¿qué hace
Hidden
, si no hace esto? ¿Y por qué la cuenta de usuario que ejecuta el programa tiene algo que ver con si es visible?fuente
SYSTEM
cuenta no tiene acceso a los archivos cifrados EFS de otros usuarios.LA ÚLTIMA SOLUCIÓN
Si eso es un factor decisivo para usted, la solución final es crear un archivo de script JS como el siguiente, que ejecutará su comando en una ventana oculta, espere a que termine su comando y devuelva su código de error:
Guarde esto como archivo js (myjob.js) y agréguelo a su programador de tareas: Disfrute
fuente
"Ejecutar si el usuario ha iniciado sesión o no" permitirá que la opción oculta funcione. Tenga en cuenta que debe proporcionar sus credenciales después de elegir esto.
fuente
Ambos :
evitará la ventana de comando negra, pero tenga en cuenta los inconvenientes: no podrá trabajar con algunas herramientas de automatización de GUI como 'AutoIt' o SendKeys en PowerShell, ya que Windows inicia las tareas en un entorno de estilo sin cabeza.
fuente
Dejo la configuración predeterminada y escribo programas personalizados cortos que generan la ejecución sin que se muestre una ventana. Por ejemplo, para ejecutar un archivo por lotes sin abrir una ventana de símbolo del sistema, use el código a continuación. Establezca la tarea para generar "RunBatchFile.exe (path_to_batch_file)".
fuente
ProcessWindowStyle.Hidden
porción, ¿correcto? Veo algo al respecto aquí: msdn.microsoft.com/en-us/library/…Estaba teniendo este problema con las tareas programadas de PowerShell (que estaba implementando a través de GPO). Terminé envolviéndolo en una ventana de comandos:
fuente