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

    1.创建spring roo工程   2.在数据库中创建数据库feedback_schema,再创建几张表   3.创建连接数据库 persistence setup --provider HIBER ...

  2. JQuery不能加载click事件的问题

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  3. mybaits返回插入成功后的自增值

    mybaits返回插入成功后的自增值 在项目中,我们经常遇到这样的情况:insert语句成功后,需要自增的id值,这个时候,我们可以通过mybatis的 useGeneratedKeys 来实现,具体 ...

  4. requestFullscreen实现全屏展示

    requestFullscreen实现全屏展示. var fullContainer = document.getElementById('fullScreenContainer'); //先把元素展 ...

  5. pycharm中不能安装bs4的解决方案

    首先:什么Beautiful Soup? Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.B ...

  6. c语言三元组

    // Triplet.cpp : 定义控制台应用程序的入口点.//#include "stdio.h"#include "stdlib.h"#define OK ...

  7. 设置tableView背景颜色

    [treeTableView setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight] ...

  8. 【python】-- web开发之CSS

    CSS CSS作用概述:(通俗的讲就是将HTML这个赤裸裸的“人”,穿上华丽的衣服) CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常 ...

  9. Symfony 使用KnpTimeBundle

    使用time_diff时出现:diff.ago.hour; 解决:1:引入"knplabs/knp-time-bundle": "^1.7",https://g ...

  10. 销售订单、外向交货单、交货 bapi

    转自[http://www.cnblogs.com/elegantok/archive/2009/10/18/1585398.html]***********SALES ORDER INPUT CRE ...