以编程方式编辑计划任务
Edit scheduled task programmatically
我需要能够在没有用户交互的情况下编辑一些设置,例如这个:
我已经在创建它了:
using Microsoft.Win32.TaskScheduler;
/* ... */
try
{
ScheduledTasks.RootFolder.DeleteTask("Task");
}
catch (Exception) { }
TaskDefinition TaskProperties = ScheduledTasks.NewTask();
TaskProperties.RegistrationInfo.Description = "Runs background stuff";
TaskProperties.Actions.Add(new ExecAction(Process.GetCurrentProcess().MainModule.FileName, "/background", null));
ScheduledTasks.RootFolder.RegisterTaskDefinition(@"Task", TaskProperties);
schtasks.exe
没有给出编辑它的方法,Task Scheduler Managed Wrapper, but the Task Scheduler GUI does, and there is also a C++ API 也没有。如何编辑这些设置?我真的不介意解决方案是否涉及 PInvoke
。代码片段的奖金 <3。
注意:我不想导入单独的 XML 文件,因为 .exe 应该是独立的,并且某些元素可能因系统而异(例如,文件的位置)
在 Settings
下查找:
TaskProperties.Settings.DisallowStartIfOnBatteries = true;
我需要能够在没有用户交互的情况下编辑一些设置,例如这个:
我已经在创建它了:
using Microsoft.Win32.TaskScheduler;
/* ... */
try
{
ScheduledTasks.RootFolder.DeleteTask("Task");
}
catch (Exception) { }
TaskDefinition TaskProperties = ScheduledTasks.NewTask();
TaskProperties.RegistrationInfo.Description = "Runs background stuff";
TaskProperties.Actions.Add(new ExecAction(Process.GetCurrentProcess().MainModule.FileName, "/background", null));
ScheduledTasks.RootFolder.RegisterTaskDefinition(@"Task", TaskProperties);
schtasks.exe
没有给出编辑它的方法,Task Scheduler Managed Wrapper, but the Task Scheduler GUI does, and there is also a C++ API 也没有。如何编辑这些设置?我真的不介意解决方案是否涉及 PInvoke
。代码片段的奖金 <3。
注意:我不想导入单独的 XML 文件,因为 .exe 应该是独立的,并且某些元素可能因系统而异(例如,文件的位置)
在 Settings
下查找:
TaskProperties.Settings.DisallowStartIfOnBatteries = true;