昨天有一个任务,就是要下载相关文件,然后保存在相关路径下,这个没什么难度,所以就略过不谈,主要谈谈定时下载,即每天某个固定时间执行下载,这个功能我是用C#代码来操作windows自带的任务计划来实现的,所以我简单的写了一个任务计划操作类,以下是代码主体部分,基本上可实现我需要的功能,当然,因为时间仓促,还不是很完善,我会尽量抽时间完善这个公共类,以便以后操作的时候,可以直接使用,废话说完,开始进入正题:

1,首先下载TaskScheduler.dll,然后将其添加到引用中。

2,然后下面是TaskSchedulerHandler.cs的代码,也就是满足我的需要的操作类

  1. /// <summary>
  2. /// @Date:12/10/2012
  3. /// @Author:Andy
  4. /// @Desciption:class of add,delete and select Task Scheduler
  5. /// </summary>
  6. public class TaskSchedulerHandler
  7. {
  8. public string hour;//task hour
  9. public string minute;//task minute
  10. public string interval;//task interval
  11. public string taskName;//Name of Task
  12. public string userName;//user to authorize the task
  13. public string userPwd;//password of user
  14. public TaskSchedulerHandler()
  15. {
  16. InitVariables();
  17. }
  18. /// <summary>
  19. /// Add Task to TaskScheduler
  20. /// </summary>
  21. public void AddTask()
  22. {
  23. if (!SelTask())
  24. {
  25. ScheduledTasks st = new ScheduledTasks();
  26. Task autoDownload = st.CreateTask(taskName);
  27. DailyTrigger dayTrigger = new DailyTrigger(Convert.ToInt16(hour), Convert.ToInt16(minute), Convert.ToInt16(interval));//get default config from app.config
  28. autoDownload.Triggers.Add(dayTrigger);
  29. //autoDownload.SetAccountInformation(userName, userPwd);//to authorize the console ro run
  30. autoDownload.ApplicationName = Assembly.GetExecutingAssembly().Location;
  31. //you can also modify the values in app.config
  32. //and publish it, then you can add the application name here
  33. //autoDownload.ApplicationName = "";
  34. autoDownload.Save();
  35. autoDownload.Close();
  36. }
  37. //else
  38. //{
  39. //    DelTask(taskName);
  40. //    AddTask();
  41. //}
  42. }
  43. /// <summary>
  44. /// Select Task from TaskScheduler
  45. /// </summary>
  46. /// <param name="taskName"></param>
  47. /// <returns></returns>
  48. public bool SelTask()
  49. {
  50. bool flag = false;
  51. ScheduledTasks st = new ScheduledTasks();
  52. string[] taskNameStr = st.GetTaskNames();
  53. foreach (string item in taskNameStr)
  54. {
  55. if (taskName == item.Split('.')[0])
  56. {
  57. flag = true;
  58. break;
  59. }
  60. }
  61. return flag;
  62. }
  63. /// <summary>
  64. /// Delete Task
  65. /// </summary>
  66. /// <param name="taskName"></param>
  67. public void DelTask(string taskName)
  68. {
  69. if (taskName != "" && taskName != null)
  70. {
  71. ScheduledTasks st = new ScheduledTasks();
  72. st.DeleteTask(taskName);
  73. }
  74. }
  75. /// <summary>
  76. /// Set Default Value for Variables
  77. /// </summary>
  78. public void InitVariables()
  79. {
  80. hour = ConfigurationManager.AppSettings["taskHour"];
  81. minute = ConfigurationManager.AppSettings["taskMinute"];
  82. interval = ConfigurationManager.AppSettings["interval"];
  83. taskName = ConfigurationManager.AppSettings["taskName"];
  84. userName = ConfigurationManager.AppSettings["taskUser"];
  85. userPwd = ConfigurationManager.AppSettings["taskPwd"];
  86. }
  87. }

这样,一个简单的任务计划操作类就完成了,简单说下,因为目前我的很多的值都需要存储在app.config中,以便日后修改或进行配置,所以我的变量大多是直接读取app.config中的值来实现赋值的,这也是下一步我打算完善的,希望把这个作为一个公共类,可以让其他人直接使用。

C#操作计划任务的更多相关文章

  1. Oracle SQL操作计划基线总结(SQL Plan Baseline)

    一.基础概念 Oracle 11g開始,提供了一种新的固定运行计划的方法,即SQL plan baseline,中文名SQL运行计划基线(简称基线),能够觉得是OUTLINE(大纲)或者SQL PRO ...

  2. 高抛低吸T+0操作要领(目前行情短线炒作的必备技能)

    最近的行情只能用操蛋来形容,但是危机中不乏机会.现在已经不是之前行情的思路,那着一个股票长线抱着,即使是好的牛股,也经不起目前行情的这 么折腾.所以,现在最适合的操作方式就是高抛低吸.今天低吸保不准明 ...

  3. 19. ClustrixDB 执行计划解读

    EXPLAIN语句用于显示ClustrixDB查询优化器(也称为Sierra)如何执行INSERT.SELECT.UPDATE和DELETE语句.EXPLAIN的输出有三列: Operation - ...

  4. Salesforce Consumer Goods Cloud 浅谈篇三之 行动计划(Action Plan)相关配置

    本篇参考: https://v.qq.com/x/page/f0772toebhd.html https://v.qq.com/x/page/e0772tsmtek.html https://v.qq ...

  5. Hive On Spark概述

    Hive现有支持的执行引擎有mr和tez,默认的执行引擎是mr,Hive On Spark的目的是添加一个spark的执行引擎,让hive能跑在spark之上: 在执行hive ql脚本之前指定执行引 ...

  6. linux端口详解

    Linux端口总结如下: 0|无效端口,通常用于分析操作系统 1|传输控制协议端口服务多路开关选择器 2|管理实用程序 3|压缩进程 5|远程作业登录 7|回显 9|丢弃 11|在线用户 13|时间 ...

  7. stock 当天盘势

    看盘 (一)怎样看大盘当天的指数收阴.收阳 投资者每天都看大盘,但多数人看不准大盘.大盘到底当天是收阴,还是收阳?我通过很长时间的记录.验证,发现大盘在正常时间内,收阴.收阳是有规律的.我判断的准确率 ...

  8. kali linux学习笔记(四) : 网络端口大全介绍

    端口大全介绍 2端口:管理实用程序 3端口:压缩进程 5端口:远程作业登录 7端口:回显 9端口:丢弃 11端口:在线用户 13端口:时间 17端口:每日引用 18端口:消息发送协议 19端口:字符发 ...

  9. 网络-01-端口号-linux端口详解大全

    0 | 无效端口,通常用于分析操作系统1 | 传输控制协议端口服务多路开关选择器2 | 管理实用程序3 | 压缩进程5 | 远程作业登录7 | 回显9 | 丢弃11 | 在线用户13 | 时间17 | ...

随机推荐

  1. wps文档怎样去除广告

    安装完 WPS 之后右键—属性—打开文件夹位置(如图) 接下来进入 10.1.0.6929 文件夹内,再次进入 office6 文件夹内,找到 wpscenter 应用程序,将其删除.此应用包含定时弹 ...

  2. 推荐扔物线的HenCoder Android 开发进阶系列 后期接着更新

    官网地址:http://hencoder.com/ 我来做一次辛勤的搬运工 HenCoder:给高级 Android 工程师的进阶手册 HenCoder Android 开发进阶: 自定义 View ...

  3. java实体类如果不重写toString方法,会如何?

    先认识一下Object Object 类的 toString 方法 返回一个字符串,该字符串由类名(对象是该类的一个实例).at 标记符“@”和此对象哈希码的无符号十六进制表示组成.换句话说,该方法返 ...

  4. Hadoop环境搭建1_JDK+SSH

    1 前言: Hadoop 最早是为了在Linux 平台上使用而开发的,但是Hadoop 在UNIX.Windows 和Mac OS X 系统上也运行良好.不过,在Windows 上运行Hadoop 稍 ...

  5. 浅析js绑定同一个事件依次触发问题系列(一)

    算了 还是上代码吧  记得写过这篇文章,但是找不到了(对,就是找不到了,算了再写一遍吧) 也是在群中有人问这个绑定不同事件 或者同一个事件的依次触发问题 个人建议如果是一个事件的话那么最好写成函数, ...

  6. xcrun: error: unable to find utility "instruments", not a developer tool or in PATH

    xcrun: error: unable to find utility "instruments", not a developer tool or in PATH   用web ...

  7. ios 推送 证书配置

    S的推送证书,有有效期限制,一般为一年.当我们证书过期的时候,就需要重新生成证书了.有一段时间没有上苹果网站了,昨天上去一看,此奥,改版了,下边我们将重新生成一个正式环境的push推送的证书. 1.先 ...

  8. C​#​获​取​当​前​时​间​的​各​种​格​式

    C#获取当前时间的各种格式  DateTime.Now.ToShortTimeString()   DateTime dt = DateTime.Now;   dt.ToString();//2005 ...

  9. api签名认证

    参数列表: data: { sign, uid或是openId, version, timestamp, param } sign 签名一般情况下,根据如下几项生成,通过md5或是aes加密: 接口 ...

  10. 九度OJ 1198:a+b (大数运算)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6745 解决:2320 题目描述: 实现一个加法器,使其能够输出a+b的值. 输入: 输入包括两个数a和b,其中a和b的位数不超过1000位 ...