1

私のコードは、すべての条件とトリガーが設定された Win 7 タスク スケジューラでタスクを正常に作成します。以下のスニペットは、アイドル トリガーを設定しています。タスク スケジューラですべての設定を確認できるので、正しく作成されていることがわかります。タスク スケジューラで [実行] をクリックすると、プログラムが期待どおりに起動するので、アクションも正しいことがわかります。

Task.Settings.RunOnlyIfIdle = true;
Task.Settings.IdleSettings.StopOnIdleEnd = false;

// The amount of time that the computer must be in an idle state before the task is run.
Task.Settings.IdleSettings.IdleDuration = TimeSpan.FromMinutes(1);
// Value that indicates the amount of time that the Task Scheduler will wait for an idle condition to occur
Task.Settings.IdleSettings.WaitTimeout = TimeSpan.FromHours(2);

// Set up the Idle trigger.
trigger = Task.Triggers.Create(_TASK_TRIGGER_TYPE2.TASK_TRIGGER_IDLE);

スケジュールされた時間とそれ以上待つと、タスクは開始されますが、ステータスが Queuedのままになり、PC を長時間使用しないままにしても、プログラムは実行されません。

タスクは実行されるのに、アイドル状態が満たされないように見えるのはなぜですか?

Windows がアイドル状態を処理する方法に関するこのページを見つけました。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa383561(v=vs.85).aspx

4

1 に答える 1