C#操作计划任务
昨天有一个任务,就是要下载相关文件,然后保存在相关路径下,这个没什么难度,所以就略过不谈,主要谈谈定时下载,即每天某个固定时间执行下载,这个功能我是用C#代码来操作windows自带的任务计划来实现的,所以我简单的写了一个任务计划操作类,以下是代码主体部分,基本上可实现我需要的功能,当然,因为时间仓促,还不是很完善,我会尽量抽时间完善这个公共类,以便以后操作的时候,可以直接使用,废话说完,开始进入正题:
1,首先下载TaskScheduler.dll,然后将其添加到引用中。
2,然后下面是TaskSchedulerHandler.cs的代码,也就是满足我的需要的操作类
- /// <summary>
- /// @Date:12/10/2012
- /// @Author:Andy
- /// @Desciption:class of add,delete and select Task Scheduler
- /// </summary>
- public class TaskSchedulerHandler
- {
- public string hour;//task hour
- public string minute;//task minute
- public string interval;//task interval
- public string taskName;//Name of Task
- public string userName;//user to authorize the task
- public string userPwd;//password of user
- public TaskSchedulerHandler()
- {
- InitVariables();
- }
- /// <summary>
- /// Add Task to TaskScheduler
- /// </summary>
- public void AddTask()
- {
- if (!SelTask())
- {
- ScheduledTasks st = new ScheduledTasks();
- Task autoDownload = st.CreateTask(taskName);
- DailyTrigger dayTrigger = new DailyTrigger(Convert.ToInt16(hour), Convert.ToInt16(minute), Convert.ToInt16(interval));//get default config from app.config
- autoDownload.Triggers.Add(dayTrigger);
- //autoDownload.SetAccountInformation(userName, userPwd);//to authorize the console ro run
- autoDownload.ApplicationName = Assembly.GetExecutingAssembly().Location;
- //you can also modify the values in app.config
- //and publish it, then you can add the application name here
- //autoDownload.ApplicationName = "";
- autoDownload.Save();
- autoDownload.Close();
- }
- //else
- //{
- // DelTask(taskName);
- // AddTask();
- //}
- }
- /// <summary>
- /// Select Task from TaskScheduler
- /// </summary>
- /// <param name="taskName"></param>
- /// <returns></returns>
- public bool SelTask()
- {
- bool flag = false;
- ScheduledTasks st = new ScheduledTasks();
- string[] taskNameStr = st.GetTaskNames();
- foreach (string item in taskNameStr)
- {
- if (taskName == item.Split('.')[0])
- {
- flag = true;
- break;
- }
- }
- return flag;
- }
- /// <summary>
- /// Delete Task
- /// </summary>
- /// <param name="taskName"></param>
- public void DelTask(string taskName)
- {
- if (taskName != "" && taskName != null)
- {
- ScheduledTasks st = new ScheduledTasks();
- st.DeleteTask(taskName);
- }
- }
- /// <summary>
- /// Set Default Value for Variables
- /// </summary>
- public void InitVariables()
- {
- hour = ConfigurationManager.AppSettings["taskHour"];
- minute = ConfigurationManager.AppSettings["taskMinute"];
- interval = ConfigurationManager.AppSettings["interval"];
- taskName = ConfigurationManager.AppSettings["taskName"];
- userName = ConfigurationManager.AppSettings["taskUser"];
- userPwd = ConfigurationManager.AppSettings["taskPwd"];
- }
- }
这样,一个简单的任务计划操作类就完成了,简单说下,因为目前我的很多的值都需要存储在app.config中,以便日后修改或进行配置,所以我的变量大多是直接读取app.config中的值来实现赋值的,这也是下一步我打算完善的,希望把这个作为一个公共类,可以让其他人直接使用。
C#操作计划任务的更多相关文章
- Oracle SQL操作计划基线总结(SQL Plan Baseline)
一.基础概念 Oracle 11g開始,提供了一种新的固定运行计划的方法,即SQL plan baseline,中文名SQL运行计划基线(简称基线),能够觉得是OUTLINE(大纲)或者SQL PRO ...
- 高抛低吸T+0操作要领(目前行情短线炒作的必备技能)
最近的行情只能用操蛋来形容,但是危机中不乏机会.现在已经不是之前行情的思路,那着一个股票长线抱着,即使是好的牛股,也经不起目前行情的这 么折腾.所以,现在最适合的操作方式就是高抛低吸.今天低吸保不准明 ...
- 19. ClustrixDB 执行计划解读
EXPLAIN语句用于显示ClustrixDB查询优化器(也称为Sierra)如何执行INSERT.SELECT.UPDATE和DELETE语句.EXPLAIN的输出有三列: Operation - ...
- 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 ...
- Hive On Spark概述
Hive现有支持的执行引擎有mr和tez,默认的执行引擎是mr,Hive On Spark的目的是添加一个spark的执行引擎,让hive能跑在spark之上: 在执行hive ql脚本之前指定执行引 ...
- linux端口详解
Linux端口总结如下: 0|无效端口,通常用于分析操作系统 1|传输控制协议端口服务多路开关选择器 2|管理实用程序 3|压缩进程 5|远程作业登录 7|回显 9|丢弃 11|在线用户 13|时间 ...
- stock 当天盘势
看盘 (一)怎样看大盘当天的指数收阴.收阳 投资者每天都看大盘,但多数人看不准大盘.大盘到底当天是收阴,还是收阳?我通过很长时间的记录.验证,发现大盘在正常时间内,收阴.收阳是有规律的.我判断的准确率 ...
- kali linux学习笔记(四) : 网络端口大全介绍
端口大全介绍 2端口:管理实用程序 3端口:压缩进程 5端口:远程作业登录 7端口:回显 9端口:丢弃 11端口:在线用户 13端口:时间 17端口:每日引用 18端口:消息发送协议 19端口:字符发 ...
- 网络-01-端口号-linux端口详解大全
0 | 无效端口,通常用于分析操作系统1 | 传输控制协议端口服务多路开关选择器2 | 管理实用程序3 | 压缩进程5 | 远程作业登录7 | 回显9 | 丢弃11 | 在线用户13 | 时间17 | ...
随机推荐
- SetTimer时间间隔的问题
1.用WM_TIMER来设置定时器 SetTimer函数的原型 UINT_PTR SetTimer( HWND hWnd, // 窗体句柄 UINT_PT ...
- ActivityLifecycleCallbacks 如何控制activity的生命周期
Android开发 - ActivityLifecycleCallbacks使用方法初探 初识 ActivityLifecycleCallbacks 利用ActivityLifecycleCallba ...
- StartUML
原著:Stephen Wong 翻译:火猴 http://blog.csdn.net/monkey_d_meng/article/details/5995610 Sta ...
- Windows server2008 搭建ASP接口訪问连接oracle数据库全过程记录
真的是太不easy了,曾经的时候在window server 2003上面搭建了一套asp+oracle的接口系统.就费了好大的劲儿,事实上那会迷迷瞪瞪的也不知道怎么的就弄好了,也懒得管了.OK,从昨 ...
- linux系统之间基于密钥对免输入密码登陆
通常,我们登陆到一台linux主机是需要输入密码,这样可以验证登陆者的身份. 这篇随笔里面我打算记录一下配置基于ssh密钥对登陆系统.在配置之前先和大家说明一下我遇到过的问题:刚接触到linux时候首 ...
- 【HTML5开发系列】表单元素
<form> 创建一个HTML表单 属性: action 表示提交表单时浏览器应该把用户填写的数据发送到什么地方 method 用来指定表单数据发送到服务器的方式.允许值有get和post ...
- 测试站如何最快获取正式站的最新数据: ln -s
针对静态数据, 比如图片/js等文件, 测试站如何获取最新的呢? ln -s /alidata/www/mysite/uploads /alidata/www/mysite_test/uploads ...
- [luogu4755]Beautiful Pair
[luogu4755]Beautiful Pair luogu 第一次写最大值分治感觉有点丑 每次找到最大值mid,扫小的一边,主席树查大的一边小于等于\(\frac{a[mid]}{a[i]}\)的 ...
- Action获取表单数据的三种方式
1.使用ActionContext类获取 示例 获取用户提交的用户名和密码 jsp页面 action中的java代码 2.使用ServletActionContext类获取 jsp页面 Java代码 ...
- Gradle-jar-aar
Ref:Android Studio系列教程 Ref:Android Studio系列教程四--Gradle基础 Ref:Intellij IDEA 14.x 中的Facets和Artifacts的区 ...