zoukankan      html  css  js  c++  java
  • C#操作计划任务

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

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

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

    [csharp] view plain copy
     
    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.   
    15.     public TaskSchedulerHandler()  
    16.     {  
    17.         InitVariables();  
    18.     }  
    19.   
    20.     /// <summary>  
    21.     /// Add Task to TaskScheduler  
    22.     /// </summary>  
    23.     public void AddTask()  
    24.     {  
    25.         if (!SelTask())  
    26.         {  
    27.             ScheduledTasks st = new ScheduledTasks();  
    28.             Task autoDownload = st.CreateTask(taskName);  
    29.             DailyTrigger dayTrigger = new DailyTrigger(Convert.ToInt16(hour), Convert.ToInt16(minute), Convert.ToInt16(interval));//get default config from app.config  
    30.   
    31.             autoDownload.Triggers.Add(dayTrigger);  
    32.             //autoDownload.SetAccountInformation(userName, userPwd);//to authorize the console ro run  
    33.             autoDownload.ApplicationName = Assembly.GetExecutingAssembly().Location;  
    34.               
    35.             //you can also modify the values in app.config   
    36.             //and publish it, then you can add the application name here  
    37.             //autoDownload.ApplicationName = "";  
    38.             autoDownload.Save();  
    39.             autoDownload.Close();  
    40.         }  
    41.         //else  
    42.         //{  
    43.         //    DelTask(taskName);  
    44.         //    AddTask();  
    45.         //}  
    46.     }  
    47.   
    48.     /// <summary>  
    49.     /// Select Task from TaskScheduler  
    50.     /// </summary>  
    51.     /// <param name="taskName"></param>  
    52.     /// <returns></returns>  
    53.     public bool SelTask()  
    54.     {  
    55.         bool flag = false;  
    56.         ScheduledTasks st = new ScheduledTasks();  
    57.         string[] taskNameStr = st.GetTaskNames();  
    58.         foreach (string item in taskNameStr)  
    59.         {  
    60.             if (taskName == item.Split('.')[0])  
    61.             {  
    62.                 flag = true;  
    63.                 break;  
    64.             }  
    65.         }  
    66.   
    67.         return flag;  
    68.     }  
    69.   
    70.     /// <summary>  
    71.     /// Delete Task  
    72.     /// </summary>  
    73.     /// <param name="taskName"></param>  
    74.     public void DelTask(string taskName)  
    75.     {  
    76.         if (taskName != "" && taskName != null)  
    77.         {  
    78.             ScheduledTasks st = new ScheduledTasks();  
    79.             st.DeleteTask(taskName);  
    80.         }  
    81.     }  
    82.   
    83.     /// <summary>  
    84.     /// Set Default Value for Variables  
    85.     /// </summary>  
    86.     public void InitVariables()  
    87.     {  
    88.         hour = ConfigurationManager.AppSettings["taskHour"];  
    89.         minute = ConfigurationManager.AppSettings["taskMinute"];  
    90.         interval = ConfigurationManager.AppSettings["interval"];  
    91.         taskName = ConfigurationManager.AppSettings["taskName"];  
    92.         userName = ConfigurationManager.AppSettings["taskUser"];  
    93.         userPwd = ConfigurationManager.AppSettings["taskPwd"];  
    94.     }  
    95. }  

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

  • 相关阅读:
    Mysql集群
    JAVA 经典算法 40 例
    公司面试问题总结
    面试题6
    面试题5
    Java自学-JDK环境变量配置
    mybatis中#{}和${}的区别
    JVM系列(四)— 原子性、可见性与有序性
    JVM系列(三)— Java内存模型
    Java基础拾遗(一) — 忽略的 Integer 类
  • 原文地址:https://www.cnblogs.com/zxtceq/p/7850994.html
Copyright © 2011-2022 走看看