タスクスケジューラのマネージドラッパーを使用してWindowsタスクを作成します。ただし、[設定]タブで次のオプションのチェックを外す方法がわかりません。
実行時間が長くなる場合は、タスクを停止します
要求されたときに実行中のタスクが終了しない場合は、強制的に停止させます
私の現在のコード:
public static void createNewDailyTask(string taskName,string appPath, string description){
using (TaskService ts = new TaskService()) {
Microsoft.Win32.TaskScheduler.Task t = ts.GetTask(taskName);
if (t != null) return;
TaskDefinition td = ts.NewTask();
td.Principal.RunLevel = TaskRunLevel.Highest;
td.RegistrationInfo.Description = description;
TimeTrigger tt = new TimeTrigger();
// trigger every 5 min
tt.Repetition.Interval = TimeSpan.FromMinutes(5);
// Add trigger to the task
td.Triggers.Add(tt);
td.Actions.Add(new ExecAction(appPath));
// Register the task in the root folder
ts.RootFolder.RegisterTaskDefinition(taskName, td);
}
}
TaskDefinitionクラスには、設定オブジェクトがあります。ただし、前述のオプションのチェックボックスをオフにするための対応するプロパティが見つかりませんでした。
これらのチェックボックスは、(TaskDefinition.Settings.ExecutionTimeLimit
タイプのString
)プロパティと(タイプの)プロパティによって制御できるようです。TaskDefintion.Settings.AllowHardTerminate
bool
ExecutionTimeLimitは、異常な形式の文字列であると文書化されています。使用するnull
か"PT0S"
、無期限に実行できるようにするかを示しています。
タスクを完了するために許可されている時間。この文字列の形式はPnYnMnDTnHnMnSです。ここで、nYは年数、nMは月数、nDは日数、「T」は日付/時刻の区切り文字、nHは時間数、nMは分数。nSは秒数です(たとえば、PT5Mは5分を指定し、P1M4DT2H5Mは1か月、4日、2時間、および5分を指定します)。PT0Sの値は、タスクを無期限に実行できるようにします。このパラメーターがNothingに設定されている場合、実行時間制限は無限です。
ソース:https://docs.microsoft.com/en-us/windows/desktop/TaskSchd/tasksettings-executiontimelimit
注:ExecutionTimeLimitはTimeSpan
。の場合もあります。その場合は、TimeSpan.Zero
値にを使用して無効にします。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加