2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

在 Vista 和 Windows Server 2008 中使用计划任务程序

  • 2008-03-02
  • 本文字数:1724 字

    阅读完需:约 6 分钟

计划任务程序是 Windows Vista 以及即将发布的 Windows Server 2008 中一个很有用的附件。本文是一篇快速教程,讲解了如何在托管代码中使用计划任务程序。若要了解更多的详细解释,敬请访问 Bart De Smet 相应的博客文章

Windows Vista 与即将发布的 Windows Server 2008 提供了一种可能,就是能够创建复杂的任务,使得它们可以在不同时刻及时运行。它还提供了一个很棒的特性,可以通过托管代码访问嵌入到操作系统中的计划任务程序的功能。首先,创建一个 C#控制台应用程序,然后从 System32 文件夹中导入 taskschd.dll 文件。它将会创建计划任务程序的 COM 互操作程序集。然后,像这样创建一个 TaskSchedulerClass 对象:

TaskSchedulerClass scheduler = new TaskSchedulerClass();

接下来连接 scheduler 对象:

TaskSchedulerClass scheduler = new TaskSchedulerClass();
scheduler.Connect(null, null, null, null);

下一步是创建一个任务,并设置它具有的大量属性:

ITaskDefinition task = scheduler.NewTask(0);
task.RegistrationInfo.Author = “Author”;
task.RegistrationInfo.Description = “New Task”;
task.Settings.RunOnlyIfIdle = true;

下面是选择任务应该启动的时刻。方法就是通过触发器。我们的范例使用了一个每日触发的触发器,如下所示:

IDailyTrigger trigger = (IDailyTrigger)task.Triggers.Create(_TASK_TRIGGER_TYPE2.TASK_TRIGGER_DAILY);
trigger.Id = “DailyTrigger”;
trigger.StartBoundary = “2008-01-01T12:00:00”;
trigger.EndBoundary = “2008-01-31T12:00:00”;

当触发器中设置的条件满足要求时,任务就会运行。但是必须定义动作(action),否则任务什么都不会做。这是一个范例:

IEmailAction action = (IEmailAction)task.Actions.Create(_TASK_ACTION_TYPE.TASK_ACTION_SEND_EMAIL);
action.Id = “Email action”;
action.Server = “server…”;
action.From = “sender…”;
action.To = “recipient…”;
action.Subject = “The subject of the email…”;
action.Body = “The body text of the email…”;

该任务几乎随时可以使用,仅仅需要对其进行注册。

ITaskFolder folder = scheduler.GetFolder("\\Task");
IRegisteredTask regTask = folder.RegisterTaskDefinition(
“Test”,
task,
(int)_TASK_CREATION.TASK_CREATE_OR_UPDATE,
null, //user
null, // password
_TASK_LOGON_TYPE.TASK_LOGON_INTERACTIVE_TOKEN,
“”);

任务一旦完成并被注册,就能够立即运行,如下所示,或者使用“schtasks /run”。

IRunningTask runTask = regTask.Run(null);

将这些代码集中在一起,则结果为:

using System;
using System.Collections.Generic;
using System.Text;

namespace TaskScheduler {
class Program {
static void Main (string[] args) {
TaskSchedulerClass scheduler = new TaskSchedulerClass();
scheduler.Connect(null, null, null, null);

ITaskDefinition task = scheduler.NewTask(0);
task.RegistrationInfo.Author = “Author”;
task.RegistrationInfo.Description = “New Task”;
task.Settings.RunOnlyIfIdle = true;

IDailyTrigger trigger = (IDailyTrigger)task.Triggers.Create(_TASK_TRIGGER_TYPE2.TASK_TRIGGER_DAILY);
trigger.Id = “DailyTrigger”;
trigger.StartBoundary = “2008-01-01T12:00:00”;
trigger.EndBoundary = “2008-01-31T12:00:00”;

IEmailAction action = (IEmailAction)task.Actions.Create(_TASK_ACTION_TYPE.TASK_ACTION_SEND_EMAIL);
action.Id = “Email action”;
action.Server = “server…”;
action.From = “sender…”;
action.To = “recipient…”;
action.Subject = “The subject of the email…”;
action.Body = “The body text of the email…”;

ITaskFolder folder = scheduler.GetFolder("\\Task");
IRegisteredTask regTask = folder.RegisterTaskDefinition(
“Test”,
task,
(int)_TASK_CREATION.TASK_CREATE_OR_UPDATE,
null, //user
null, // password
_TASK_LOGON_TYPE.TASK_LOGON_INTERACTIVE_TOKEN,
“”);

IRunningTask runTask = regTask.Run(null);
}
}
}

查看英文原文: Using the Task Scheduler in Vista and Windows Server 2008

2008-03-02 01:083223
用户头像

发布了 109 篇内容, 共 46.3 次阅读, 收获喜欢 14 次。

关注

评论

发布
暂无评论
发现更多内容

等保测评后的持续改进策略

等保测评

权威认可!KaiwuDB 连续三年入选信通院数据库产业图谱

KaiwuDB

企业级数据库解决方案 - OpenGauss主备系统在开发者空间的落地实践

华为云开发者联盟

opengauss 华为开发者空间

TDBC2025大会聚焦AI与数据库融合 极限科技发布新一代Coco AI搜索平台

新消费日报

直播预告 | 头部券商实战案例分享!可观测性如何守护业务零中断?

博睿数据

行业研究 | 2025金融可观测性实践与趋势洞察报告重磅发布!

博睿数据

“天翼云息壤杯”高校AI大赛总决赛在京启幕,全国顶尖战队竞逐AI巅峰!

天翼云开发者社区

AI大赛 天翼云

在Google Play应用上实施中间人攻击 | 金融科技漏洞赏金系列第3部分

qife122

移动安全 Android逆向

Android适配16 KB Page Size,看这一篇就够了! | 优测云真机实验室

优测云服务平台

an'droid 优测

火山引擎DataAgent:AI完成从“数据洞察”到“自主行动”质变

字节跳动数据平台

通义灵码进阶指南:超越基础提示,解锁智能编程新境界

阿里云云效

阿里云 通义灵码

海外营收增长700%!阿里云助力云鲸智能出海

新消费日报

等保测评流程的优化与变革

等保测评

通义灵码进阶指南:超越基础提示,解锁智能编程新境界

阿里巴巴云原生

阿里云 通义灵码

杭州基础软件和工业软件产业联盟成立,玖章算术成为首批联盟成员

NineData

玖章算术 工业软件 杭州市基础软件联盟 杭州工业软件产业技术联盟 国产基础软件

AI赋能心理咨询 - 华为开发者空间基于DeepSeek与Dify的解决方案

华为云开发者联盟

华为云ModelArts 华为开发者空间 AI 大模型

优测发布IoT云联解决方案,赋能生态应用创新跨端体验!

优测云服务平台

解决方案 loT 优测

手机上接收的CAD图纸如何在电脑端查看?

在路上

cad

软件工厂,从设想走向现实的半个世纪

DevOps和数字孪生

IT服务台经理怎样算成功?-ManageEngine卓豪

ServiceDesk_Plus

IT服务台

中烟创新致敬“DeepSeek”,以坚守创新托举美好未来

中烟创新

【ICML2025】大模型训练性能4倍提升!阿里云PAI团队研究成果ChunkFlow中选

阿里云大数据AI技术

人工智能 机器学习 云计算 大数据 模型

百度智能云携手香港大学,开启AI出海教育新征程

百度Geek说

AI技术在英语背单词App中的应用

北京木奇移动技术有限公司

软件外包公司 AI英语学习 AI英语口语

锂电池制造行业MES特色解决方案:差异化生产管控与智能工厂实践

万界星空科技

制造业 mes 万界星空科技mes 新能源电池 锂电池mes

中烟创新入选“2024卓越软件项目优秀案例”

中烟创新

AI大模型入门 (一):什么是大模型?

测吧(北京)科技有限公司

极限科技亮相TDBC2025可信数据库发展大会 连续三年荣登信通院《中国数据库产业图谱》

新消费日报

语音 AI 公司 Deepgram 发布 Saga,面向开发者的语音操作系统;OpenS2S:完全开源的共情语音大模型丨日报

RTE开发者社区

在Vista和Windows Server 2008中使用计划任务程序_.NET_Abel Avram_InfoQ精选文章