Criando uma tarefa usando o exemplo NewWorkItem
Ao criar uma tarefa, você usará duas interfaces do Agendador de Tarefas: ITaskScheduler e ITask. Você deve fornecer um nome exclusivo para a tarefa, o identificador de classe do objeto de tarefa e o identificador de interface de ITask. O identificador de classe e o identificador de interface são mostrados no exemplo de código a seguir a este tópico.
Observação
Você também pode criar uma tarefa chamando ITaskScheduler::AddWorkItem. Ao seguir essa rota, é sua responsabilidade criar uma instância do objeto Task (que suporta a interface ITask) e, em seguida, adicionar a tarefa com o nome fornecido.
Observação
Por padrão, somente um membro do grupo Administradores, Operadores de Backup ou Operadores de Servidor pode criar tarefas no Windows Server 2003. Um membro do grupo Administradores pode alterar o descritor de segurança da pasta Windows\Task para permitir que outros criem tarefas.
O nome fornecido para a tarefa deve ser exclusivo dentro da pasta Tarefas Agendadas. Se já existir uma tarefa com o mesmo nome, ITaskScheduler::NewWorkItem retornará ERROR_FILE_EXISTS. Se você obtiver esse valor de retorno, deverá especificar um nome diferente e tentar criar a tarefa novamente.
O procedimento a seguir descreve como criar uma nova tarefa de item de trabalho.
Para criar uma nova tarefa de item de trabalho
- Chame CoInitialize para inicializar a biblioteca COM e CoCreateInstance para obter um objeto Agendador de Tarefas. (Este exemplo pressupõe que o serviço Agendador de Tarefas esteja em execução.)
- Chame ITaskScheduler::NewWorkItem para criar uma nova tarefa. (Este método devolve um ponteiro para uma interface ITask.)
- Salve a nova tarefa no disco chamando IPersistFile::Save. (A interfaceIPersistFileé uma interface COM padrão suportada pela interface ITask.)
- Chame ITask::Release para liberar todos os recursos. (Observe que Release é um métodoIUnknownherdado por ITask.)
Para um exemplo de código | Ver |
---|---|
Criando uma única tarefa | Exemplo de código C/C++: Criando uma tarefa usando NewWorkItem |
Tópicos relacionados