NewWorkItem を使用したタスクの作成の例

タスクを作成するときは、 ITaskScheduler と ITask の 2 つのタスク スケジューラ インターフェイスを使用 します。 タスクの一意の名前、タスク オブジェクトのクラス識別子、および ITask のインターフェイス識別子を指定する必要があります。 クラス識別子とインターフェイス識別子は、このトピックの後のコード例に示されています。

注意

ITaskScheduler::AddWorkItem を呼び出してタスクを作成することもできます。 このルートを取得するときは、 Task オブジェクトのインスタンス ( ITask インターフェイスをサポート) を作成し、指定した名前でタスクを追加する必要があります。

 

注意

既定では、Windows Server 2003 でタスクを作成できるのは、Administrators、Backup Operators、または Server Operators グループのメンバーだけです。 Administrators グループのメンバーは、他のユーザーがタスクを作成できるように、Windows\Task フォルダーのセキュリティ記述子を変更できます。

 

タスクに指定する名前は、スケジュールされたタスク フォルダー内で一意である必要があります。 同じ名前のタスクが既に存在する場合、 ITaskScheduler::NewWorkItem はERROR_FILE_EXISTSを返します。 この戻り値を取得する場合は、別の名前を指定し、タスクの作成を再試行する必要があります。

次の手順では、新しい作業項目タスクを作成する方法について説明します。

新しい作業項目タスクを作成するには

  1. CoInitialize を呼び出して COM ライブラリを初期化し、CoCreateInstance を呼び出してタスク スケジューラ オブジェクトを取得します。 (この例では、タスク スケジューラ サービスが実行されていることを前提としています)。
  2. ITaskScheduler::NewWorkItem を呼び出して、新しいタスクを作成します。 (このメソッドは 、ITask インターフェイスへのポインターを返します)。
  3. IPersistFile::Save を呼び出して、新しいタスクをディスクに保存します。 ( IPersistFile インターフェイスは、 ITask インターフェイスでサポートされている標準の COM インターフェイスです)。
  4. ITask::Release を呼び出して、すべてのリソースを解放します。 (ReleaseITask によって継承された IUnknown メソッドであることに注意してください)。
のコード例については、 参照先
1 つのタスクを作成する C/C++ コード例: NewWorkItem を使用したタスクの作成

 

タスク スケジューラ 1.0 の例