Erstellen einer Aufgabe mithilfe von NewWorkItem (Beispiel)

Beim Erstellen einer Aufgabe verwenden Sie zwei Taskplanerschnittstellen: ITaskScheduler und ITask. Sie müssen einen eindeutigen Namen für die Aufgabe, den Klassenbezeichner des Taskobjekts und den Schnittstellenbezeichner von ITask angeben. Der Klassenbezeichner und der Schnittstellenbezeichner werden im Codebeispiel nach diesem Thema gezeigt.

Hinweis

Sie können eine Aufgabe auch erstellen, indem Sie ITaskScheduler::AddWorkItem aufrufen. Wenn Sie diese Route verwenden, liegt es in Ihrer Verantwortung, eine instance des Task-Objekts (das die ITask-Schnittstelle unterstützt) zu erstellen und dann den Task mit dem von Ihnen angegebenen Namen hinzuzufügen.

 

Hinweis

Standardmäßig kann nur ein Mitglied der Gruppe Administratoren, Sicherungsoperatoren oder Serveroperatoren Aufgaben unter Windows Server 2003 erstellen. Ein Mitglied der Gruppe Administratoren kann die Sicherheitsbeschreibung des Ordners Windows\Task ändern, damit andere Aufgaben erstellen können.

 

Der Name, den Sie für die Aufgabe angeben, muss im Ordner Geplante Aufgaben eindeutig sein. Wenn bereits eine Aufgabe mit demselben Namen vorhanden ist, gibt ITaskScheduler::NewWorkItem ERROR_FILE_EXISTS zurück. Wenn Sie diesen Rückgabewert erhalten, sollten Sie einen anderen Namen angeben und versuchen, die Aufgabe erneut zu erstellen.

Im folgenden Verfahren wird beschrieben, wie Sie eine neue Arbeitselementaufgabe erstellen.

So erstellen Sie einen neuen Arbeitselementtask

  1. Rufen Sie CoInitialize auf, um die COM-Bibliothek zu initialisieren, und CoCreateInstance , um ein Task Scheduler-Objekt abzurufen. (In diesem Beispiel wird davon ausgegangen, dass der Taskplanerdienst ausgeführt wird.)
  2. Rufen Sie ITaskScheduler::NewWorkItem auf, um eine neue Aufgabe zu erstellen. (Diese Methode gibt einen Zeiger auf eine ITask-Schnittstelle zurück.)
  3. Speichern Sie die neue Aufgabe auf dem Datenträger, indem Sie IPersistFile::Save aufrufen. (Die IPersistFile-Schnittstelle ist eine com-Standardschnittstelle, die von der ITask-Schnittstelle unterstützt wird.)
  4. Rufen Sie ITask::Release auf, um alle Ressourcen freizugeben. (Beachten Sie, dass Release eine von ITask geerbte IUnknown-Methode ist.)
Ein Codebeispiel für Siehe
Erstellen einer einzelnen Aufgabe C/C++-Codebeispiel: Erstellen einer Aufgabe mithilfe von NewWorkItem

 

Aufgabenplaner 1.0 Beispiele