Ejemplo de desencadenador de registro (scripting)

En este ejemplo de scripting se muestra cómo crear una tarea programada para ejecutar el Bloc de notas cuando se registra una tarea. La tarea contiene un desencadenador de registro que especifica un límite de inicio y un límite final para la tarea. El límite de inicio especifica cuándo se activa el desencadenador. La tarea también contiene una acción que especifica la tarea que se va a ejecutar el Bloc de notas.

Nota:

Cuando se actualiza una tarea con un desencadenador de registro, la tarea se ejecutará después de que se produzca la actualización.

 

En el procedimiento siguiente se describe cómo programar un archivo ejecutable como el Bloc de notas para que se inicie cuando se registra una tarea.

Para programar que el Bloc de notas se inicie cuando se registra una tarea

  1. Cree un objeto TaskService . Este objeto permite crear la tarea en una carpeta especificada.
  2. Obtenga una carpeta de tareas y cree una tarea. Utilice el método TaskService.GetFolder para obtener la carpeta donde se almacena la tarea y el método TaskService.NewTask para crear el objeto TaskDefinition que representa la tarea.
  3. Defina información sobre la tarea mediante el objeto TaskDefinition . Utilice la propiedad TaskDefinition.Settings para definir la configuración que determina cómo el servicio Programador de tareas realiza la tarea y la propiedad TaskDefinition.RegistrationInfo para definir la información que describe la tarea.
  4. Cree un desencadenador de registro mediante la propiedad TaskDefinition.Triggers . Esta propiedad proporciona acceso al objeto TriggerCollection . Use el método TriggerCollection.Create (especificando el tipo de desencadenador que desea crear) para crear un desencadenador de registro.
  5. Cree una acción para que la tarea se ejecute mediante la propiedad TaskDefinition.Actions . Esta propiedad proporciona acceso al objeto ActionCollection . Use el método ActionCollection.Create para especificar el tipo de acción que desea crear. En este ejemplo se usa un objeto ExecAction , que representa una acción que inicia un ejecutable.
  6. Registre la tarea mediante el método TaskFolder.RegisterTaskDefinition .

En el siguiente ejemplo de VBScript se muestra cómo crear una tarea que programa el Bloc de notas para que se ejecute cuando se registra la tarea.

'---------------------------------------------------------
' This sample schedules a task to start notepad.exe when
' the task is registered.
'---------------------------------------------------------

' A constant that specifies a registration trigger.
const TriggerTypeRegistration = 7
' A constant that specifies an executable action.
const ActionTypeExecutable = 0   


'********************************************************
' Create the TaskService object.
Set service = CreateObject("Schedule.Service")
call service.Connect()

'********************************************************
' Get a folder to create a task definition in. 
Dim rootFolder
Set rootFolder = service.GetFolder("\")

' The taskDefinition variable is the TaskDefinition object.
Dim taskDefinition
' The flags parameter is 0 because it is not supported.
Set taskDefinition = service.NewTask(0) 

'********************************************************
' Define information about the task.

' Set the registration info for the task by 
' creating the RegistrationInfo object.
Dim regInfo
Set regInfo = taskDefinition.RegistrationInfo
regInfo.Description = "Start Notepad when the task is registered."
regInfo.Author = "Author Name"

' Set the task setting info for the Task Scheduler by
' creating a TaskSettings object.
Dim settings
Set settings = taskDefinition.Settings
settings.StartWhenAvailable = True

'********************************************************
' Create a registration trigger.
Dim triggers
Set triggers = taskDefinition.Triggers

Dim trigger
Set trigger = triggers.Create(TriggerTypeRegistration)

trigger.ExecutionTimeLimit = "PT5M"    'Five minutes
trigger.Id = "RegistrationTriggerId"   

'***********************************************************
' Create the action for the task to execute.

' Add an action to the task. The action executes Notepad.
Dim Action
Set Action = taskDefinition.Actions.Create( ActionTypeExecutable )
Action.Path = "C:\Windows\System32\notepad.exe"

WScript.Echo "Task definition created. About to submit the task..."

'***********************************************************
' Register (create) the task.

call rootFolder.RegisterTaskDefinition( _
    "Test Registration Trigger", taskDefinition, 6, , , 3)

WScript.Echo "Task submitted."

Uso del Programador de tareas