昨天有一个任务,就是要下载相关文件,然后保存在相关路径下,这个没什么难度,所以就略过不谈,主要谈谈定时下载,即每天某个固定时间执行下载,这个功能我是用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. 4Sum_leetCode

    Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = tar ...

  2. python学习 02 元组

    元组和列表除了能不能修改外 定义单一元组还需要加逗号

  3. chattr

    chattr 功能:设置文件隐藏属性常用参数:+    增加某个特殊权限,其他原本存在的参数不动-     删除某个特殊权限,其他原本存在的参数不动=    设置一定,且仅有后面接的参数 i   文件 ...

  4. 安装Linux CentOS与用Xshell实现远程连接

    注意,进入后有一个选择skip和OK的,选择skip 网络问题 vi /etc/sysconfig/network-scripts/ifcfg-eth0  //打开网络配置文件 ONBOOT=no  ...

  5. CAFFE学习笔记(一)Caffe_Example之训练mnist

    0.参考文献 [1]caffe官网<Training LeNet on MNIST with Caffe>; [2]薛开宇<读书笔记4学习搭建自己的网络MNIST在caffe上进行训 ...

  6. eclipse里面用svn关联项目

    eclipse里面共享项目经常会用到svn或者git插件 关联项目的步骤如下: 如果 点击finish会遇到卡住问题的话,不要着急,我们需要设置svn的client设置: 如果设置了之后还是很卡的话, ...

  7. 执行后台任务的利器——Hangfire

    Hangfire是一个开源且商业免费使用的工具函数库.可以让你非常容易地在ASP.NET应用(也可以不在ASP.NET应用)中执行多种类型的后台任务,而无需自行定制开发和管理基于Windows Ser ...

  8. python(pytest)+allure+jenkins 实现接口自动化的思路

    效果图镇楼: 上述各模块作用: python(pytest): 1:用于读测试用例(本次用例写在csv文件中) 2:环境配置相关 3:提取1中的测试数据,组成请求体 4:发送请求 5:获取结果 6:断 ...

  9. 【python】-- RabbitMQ Publish\Subscribe(消息发布\订阅)

    RabbitMQ RabbitMQ Publish\Subscribe(消息发布\订阅) 1对1的消息发送和接收,即消息只能发送到指定的queue里,但这样使用有些局限性,有些时候你想让你的消息被所有 ...

  10. Dajngo admin使用

    Dajngo admin使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INS ...