【发布时间】:2010-10-20 12:33:33
【问题描述】:
是否有人对(基于 COM)Task Scheduler 2.0 API 的 .NET c# 包装器有任何建议?
使用 Google 找不到任何内容。
(我知道有基于 .net 的调度程序,例如 Quartz.net,但我需要 windows 调度程序中功能齐全的 GUI)
谢谢,
马特
【问题讨论】:
标签: c#
是否有人对(基于 COM)Task Scheduler 2.0 API 的 .NET c# 包装器有任何建议?
使用 Google 找不到任何内容。
(我知道有基于 .net 的调度程序,例如 Quartz.net,但我需要 windows 调度程序中功能齐全的 GUI)
谢谢,
马特
【问题讨论】:
标签: c#
在 GitHub 上查看以下项目:
【讨论】:
如果您不想使用任何第三方包装器,那么下面是安排任务的示例代码。代码适用于 Windows 7。
//create task service instance
ITaskService taskService = new TaskSchedulerClass();
taskService.Connect();
ITaskDefinition taskDefinition = taskService.NewTask(0);
taskDefinition.Settings.Enabled = true;
taskDefinition.Settings.Compatibility = _TASK_COMPATIBILITY.TASK_COMPATIBILITY_V2_1;
//create trigger for task creation.
ITriggerCollection _iTriggerCollection = taskDefinition.Triggers;
ITrigger _trigger = _iTriggerCollection.Create(_TASK_TRIGGER_TYPE2.TASK_TRIGGER_TIME);
_trigger.StartBoundary = DateTime.Now.AddSeconds(15).ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss");
_trigger.EndBoundary = DateTime.Now.AddMinutes(1).ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss");
_trigger.Enabled = true;
///get actions.
IActionCollection actions = taskDefinition.Actions;
_TASK_ACTION_TYPE actionType = _TASK_ACTION_TYPE.TASK_ACTION_EXEC;
//create new action
IAction action = actions.Create(actionType);
IExecAction execAction = action as IExecAction;
execAction.Path = @"C:\Windows\System32\notepad.exe";
ITaskFolder rootFolder = taskService.GetFolder(@"\");
//register task.
rootFolder.RegisterTaskDefinition("test", taskDefinition, 6, null, null, _TASK_LOGON_TYPE.TASK_LOGON_NONE, null);
【讨论】:
ITaskService、TaskSchedulerClass、ITaskDefinition、ITriggerCollection、ITrigger、IActionCollection、IAction、IExecAction和@987654@03 ?带有这些类和接口的程序集在 Visual Studio 2010 中不容易看到。
命令行够好吗?
at 23:39 /every:wednesday defrag c:
【讨论】:
schtasks
您可以通过以下 Nuget 命令获得功能齐全的 GUI。
PM> 安装包TaskSchedulerEditor
【讨论】:
taskschd.msc /s987654322@的gui版本,你为什么要安装一个带有gui的包?