写点什么

在 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:082767
用户头像

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

关注

评论

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

YonGPT构筑酒旅企业AI大脑 轻松拿捏“松弛感”

用友BIP

AI YonGPT

【慢SQL性能优化】 一条SQL的生命周期 | 京东物流技术团队

京东科技开发者

MySQL 数据库 SQL优化 企业号11月PK榜

亚马逊云科技加速大语言模型的创新应用

三掌柜

亚马逊云科技

文生图大型实践:揭秘百度搜索AIGC绘画工具的背后故事!

百度Geek说

AIGC 文生图 Ai绘图 企业号11月PK榜 百度搜索场景应用

智慧燃气:用友BIP资产云如何实现管道资产数智化管理?

用友BIP

资产管理 智慧燃气

向成本要效益!用友BIP助力车企突破内卷、打赢“降本战”

用友BIP

降本增效

HTML文本编辑器BBEdit for Mac破解版(附注册码)支持M1/M2

Rose

html 代码编辑器 Mac破解软件 BBEdit注册版 BBEdit for Mac破解版

提示找不到某些库文件?

矩视智能

深度学习 机器视觉

HarmonyOS NEXT调优工具Smart Perf Host高效使用指南

HarmonyOS开发者

HarmonyOS

大模型集体失控!南洋理工新型攻击,主流AI无一幸免

Openlab_cosmoplat

人工智能 大模型

为什么说数据安全运维难?有好用的数据安全运维平台吗?

行云管家

数字化 数据安全 数据运维 数据运维安全

依赖关系指的在Linux操作系统中,如何解决软件依赖关系?

小齐写代码

简单专业的照片修复工具 DxO ViewPoint 4免激活中文版

mac大玩家j

Mac软件推荐 图像修复工具 图像校正软件

站群服务器优势

Geek_f19a80

基于Java开发的供应商询价招标采购系统(SRM系统源码)

代码人,代码魂

Java springboot 采购 srm

当生成式AI从梦想走近现实,大语言模型未来会取代人类吗?

格致君的planB

人工智能 AI 大语言模型

云服务器数据安全保障措施看这里!

行云管家

云计算 云安全 云服务器 云数据

Dash for Mac v7.1.6激活版 提升API文档编写效率

Rose

API文档 Mac破解软件 Dash Mac破解版 Dash下载

苹果最新系统:macOS 14 Sonoma 14.1.1正式版

加油,小妞!

macOS 14 Sonoma Macos最新系统

Archicad 26中文for Mac(BIM建模软件) Archicad26破解详细安装教程

Rose

mac软件下载 建模软件 Archicad 26破解版 Archicad 26 Mac中文版 BIM软件

中国电信国际数智化人力领先实践

用友BIP

人力资源 数智化领先实践 中国电信

大模型产业生态有“成功密码”?百度高管2023进博会最新发声

飞桨PaddlePaddle

深度学习 产业生态 大模型

关于稳定扩散最详细的介绍

3D建模设计

人工智能 Stable Diffusion AI自动纹理 稳定扩散

mac原型设计:Axure RP 10 for Mac中文汉化版包下载

Rose

Axure RP 10 汉化版 Mac原型设计 Axure RP 10 下载

针对现状为什么需要对特权账号进行管理

尚思卓越

网络安全 特权账号管理

软件测试/测试开发丨探索Python魔力:第一个程序到快捷键大揭秘

测试人

Python 软件测试

Stable Diffusion:最先进的文本生成图像模型

3D建模设计

人工智能 Stable Diffusion 稳定扩散 自动纹理

快速教程|如何在 AWS EC2上使用 Walrus 部署 GitLab

SEAL安全

#GitLab Walrus 企业号11月PK榜

Android下Linux创建进程的姿势(上)

江湖修行

android Linux 进程

macos智能图片编辑工具:DxO PhotoLab 6 中文版

加油,小妞!

Raw图像处理软件 DxO PhotoLab 6

Java 多线程开发系列 2:创建一个线程

BigBang!

Java多线程

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