La tarea inactiva del Programador de tareas no se activa en la ventana de tiempo correcta

La tarea inactiva del Programador de tareas no se activa en la ventana de tiempo correcta

En mi máquina con Windows 10, creé la siguiente tarea del programador de tareas y configuré el tiempo de activación en 1 minuto cuando está inactivo. Revisé y cronometré manualmente el disparador para que suceda y siempre se dispara después de 4 minutos cuando no hay acciones del teclado o del mouse, no de 1 minuto. Lo cronometré manualmente más de 5 veces y siempre se ejecuta después de 4 minutos, no de 1 minuto. ¿Alguna explicación? ¿Y cómo puedo ejecutarlo después de 1 minuto de tiempo de inactividad, no de 4 minutos? Además, la misma tarea no se activa en absoluto en Windows 7 como se describe aquíhttps://superuser.com/questions/1568707/task-scheduler-on-idle-task-not-triggered-windows-7

Lo he notado en los documentos de Microsoft.https://docs.microsoft.com/en-us/windows/win32/taskschd/task-idle-conditionsque dice algo como 4 minutos pero no entendí y no sé si tiene relación o no? y por qué no funciona en absoluto en mi máquina con Windows 7.

ingrese la descripción de la imagen aquí

A continuación se muestra cómo se ve mi tarea programada en el programador de tareas:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

También aquí está el xml de mi tarea:

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2019-11-20T15:43:06.6081219</Date>
    <Author>MyPC\MyUser</Author>
    <URI>\MyAppIdleTask</URI>
  </RegistrationInfo>
  <Triggers>
    <IdleTrigger>
      <Enabled>true</Enabled>
    </IdleTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>S-1-5-21-1004336348-1177238915-682003330-385281</UserId>
      <LogonType>InteractiveToken</LogonType>
      <RunLevel>LeastPrivilege</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <Duration>PT1M</Duration>
      <WaitTimeout>PT0S</WaitTimeout>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>true</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>C:\MyWinFormApp\MyWinForm.exe</Command>
    </Exec>
  </Actions>
</Task>

Respuesta1

Básicamente, Microsoft programó Windows para decir: Una computadora se considera inactiva si durante 4 minutos no se generó ninguna entrada del usuario.

Lo que esto significa es esto: Windows comienza a detectar que un sistema está inactivo pero lo ignora durante 4 minutos. Se desconoce el motivo exacto, pero probablemente sea por motivos de optimización y posibles quejas. Cuando el sistema pasa al estado inactivo después de 4 minutos, el sistema operativo anuncia: el sistema ahora está inactivo durante 4 minutos y contando...

El programador de tareas recibe el mensaje, ve su tarea que está configurada, inactiva durante 1 minuto y piensa: Oh, deberíamos haberlo iniciado hace 3 minutos. Empecemos ahora. En Windows 7 no le importan los 3 minutos anteriores.

Esto te da 2 opciones.

  1. Acepta que siempre habrá un retraso de 4 minutos.
  2. No utilice el Programador de tareas. En su lugar, cree un programa o script que mida la actividad y ejecute la tarea usted mismo. Tenga en cuenta que esto aumentará la sobrecarga del sistema y puede afectar el rendimiento si se codifica incorrectamente.

Mi recomendación sería optar por la opción 1. Simplemente acepte que hay un retraso de 4 minutos. De todos modos, su pregunta inicial fue de 30 minutos.

información relacionada