注册触发器示例 (脚本)

此脚本示例演示如何创建计划为在注册任务时执行记事本的任务。 任务包含一个注册触发器,该触发器指定任务的开始边界和结束边界。 开始边界指定何时激活触发器。 该任务还包含一个操作,该操作指定要执行记事本的任务。

注意

更新具有注册触发器的任务时,将在更新发生后执行该任务。

 

以下过程介绍如何计划可执行文件(如记事本)以在注册任务时启动。

计划记事本以在注册任务时启动

  1. 创建 TaskService 对象。 此对象允许您在指定的文件夹中创建任务。
  2. 获取任务文件夹并创建任务。 使用 TaskService.GetFolder 方法获取存储任务的文件夹,使用 TaskService.NewTask 方法创建代表该任务的 TaskDefinition 对象。
  3. 使用 TaskDefinition 对象定义有关任务的信息。 使用 TaskDefinition.Settings 属性可以定义确定任务计划程序服务如何执行任务的设置,使用 TaskDefinition.RegistrationInfo 属性定义描述任务的信息。
  4. 使用 TaskDefinition.Triggers 属性创建注册触发器。 此属性提供对 TriggerCollection 对象的访问。 使用 TriggerCollection.Create 方法 (指定要创建的触发器类型,) 创建注册触发器。
  5. 使用 TaskDefinition.Actions 属性为要执行的任务创建操作。 此属性提供对 ActionCollection 对象的访问。 使用 ActionCollection.Create 方法指定要创建的操作类型。 此示例使用 ExecAction 对象,该对象表示启动可执行文件的操作。
  6. 使用 TaskFolder.RegisterTaskDefinition 方法注册任务。

以下 VBScript 示例演示如何创建计划记事本在注册任务时执行的任务。

'---------------------------------------------------------
' 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."

使用任务计划程序