# WPF快速入门系列(9)——WPF任务管理工具实现
转载自:[http://www.cnblogs.com/shanlin/p/3954531.html](http://www.cnblogs.com/shanlin/p/3954531.html)
WPF系列自然需要以一个实际项目为结束。这里分享一个博客园博客实现的一个项目,我觉得作为一个练手的项目非常合适。担心博主后期会删除什么,这里先备份在自己的博客里面分享给大家。
## 本文所有源码下载:[TaskScheduler.zip](http://files.cnblogs.com/zhili/TaskScheduler.zip)
时光如梭,距离第一次写的 [WPF学习开发客户端软件-任务助手(已上传源码)](http://www.cnblogs.com/shanlin/p/3758140.html) 已有三个多月,期间我断断续续地对该项目做了优化、完善等等工作,现在重新向大家介绍一下,希望各位可以使用,本软件以实用性为主,采用MVVM模式(有小部分没有修改过来),小巧、使用方便。
具体功能与更新如下:
计划助手:本软件由m.sh.lin0328@163.com开发与维护,免费使用,如有好的意见或建议,可发送邮件到m.sh.lin0328@163.com,谢谢使用! 注(功能与特色): 1.本软件使用方便、操作简便; 2.本软件可设置任务运行周期:一次、每月、每周、每天、每小时、间隔分钟一共6种模式,满足您的不同需求; 2.本软件有定时运行任务(支持参数)、定时提醒、定时关机、定时关闭/打开显示器、定时锁屏、记事、天气预报等功能; 3.本软件声音文件在安装目录下的Audio文件夹下,拷贝进去即可(支持.mp3、.wma、.wmv等); 4.增加最新资讯信息;
版本更新说明如下: 01.v.1.0.0.0 :2014-04-16:基本完成编码,添加快捷键 02.v.1.1.0.0 :2014-04-17: 增加开机启动,界面、托盘图标调整 03.v.1.1.2.0 :2014-05-01: 托盘修改 04.v.1.1.2.6 :2014-05-03: 窗体样式修改、提示声音修改 05.v.1.1.3.2 :2014-05-10: 主窗体列表样式修改,增加打开显示器等其它功能和细节 06.v.1.1.3.4 :2014-05-11: 任务详细窗体样式修改,增加过期和失效状态,解决关闭右下角提示不能关闭声音和其它细节 07.v.1.1.3.5 :2014-05-17: 任务状态增加失效与过期,增加锁屏功能,增加设置窗体,程序启动温馨提示功能 08.v.1.1.4.2 :2014-05-24: 数据存储改为SQLite,去除底栏状态,增加记事功能、铃声详细设置、增加天气预报、首页统计图表等及其它细节 09.v.1.1.4.4 :2014-08-23: 修复SQLite自启动报错,去除首页统计图表,任务运行周期增加按周运行,界面布局样式调整,记事增加翻页功能 10.v.1.1.4.6 :2014-08-30: 增加最新信息资讯功能,修复天气预报地域显示速度
新版本规划: 提醒功能增加推迟、声音重复播放次数、完善桌面提醒与节日提醒功能等
[ExplorerMan](http://www.cnblogs.com/ExMan/)
![](https://box.kancloud.cn/2016-01-23_56a2eb445e463.png)
![](https://box.kancloud.cn/2016-01-23_56a2eb446b8f5.png)
![](https://box.kancloud.cn/2016-01-23_56a2eb4484b4d.png)
![](https://box.kancloud.cn/2016-01-23_56a2eb44a0c9c.png)
![](https://box.kancloud.cn/2016-01-23_56a2eb44ad44e.png)
![](https://box.kancloud.cn/2016-01-23_56a2eb44c93fc.png)
![](https://box.kancloud.cn/2016-01-23_56a2eb44e304d.png)
![](https://box.kancloud.cn/2016-01-23_56a2eb4502981.png)
![](https://box.kancloud.cn/2016-01-23_56a2eb451719e.png)
![](https://box.kancloud.cn/2016-01-23_56a2eb4532141.png)
![](https://box.kancloud.cn/2016-01-23_56a2eb454d692.png)
![](https://box.kancloud.cn/2016-01-23_56a2eb4590274.jpg)
[点击下载](http://files.cnblogs.com/zhili/TaskScheduler.zip)
![](https://box.kancloud.cn/2016-01-23_56a2eb459e87e.png)
- C# 基础知识系列
- C# 基础知识系列 专题一:深入解析委托——C#中为什么要引入委托
- C# 基础知识系列 专题二:委托的本质论
- C# 基础知识系列 专题三:如何用委托包装多个方法——委托链
- C# 基础知识系列 专题四:事件揭秘
- C# 基础知识系列 专题五:当点击按钮时触发Click事件背后发生的事情
- C# 基础知识系列 专题六:泛型基础篇——为什么引入泛型
- C# 基础知识系列 专题七: 泛型深入理解(一)
- C# 基础知识系列 专题八: 深入理解泛型(二)
- C# 基础知识系列 专题九: 深入理解泛型可变性
- C#基础知识系列 专题十:全面解析可空类型
- C# 基础知识系列 专题十一:匿名方法解析
- C#基础知识系列 专题十二:迭代器
- C#基础知识 专题十三:全面解析对象集合初始化器、匿名类型和隐式类型
- C# 基础知识系列 专题十四:深入理解Lambda表达式
- C# 基础知识系列 专题十五:全面解析扩展方法
- C# 基础知识系列 专题十六:Linq介绍
- C#基础知识系列 专题十七:深入理解动态类型
- 你必须知道的异步编程 C# 5.0 新特性——Async和Await使异步编程更简单
- 全面解析C#中参数传递
- C#基础知识系列 全面解析C#中静态与非静态
- C# 基础知识系列 C#中易混淆的知识点
- C#进阶系列
- C#进阶系列 专题一:深入解析深拷贝和浅拷贝
- C#进阶系列 专题二:你知道Dictionary查找速度为什么快吗?
- C# 开发技巧系列
- C# 开发技巧系列 使用C#操作Word和Excel程序
- C# 开发技巧系列 使用C#操作幻灯片
- C# 开发技巧系列 如何动态设置屏幕分辨率
- C# 开发技巧系列 C#如何实现图片查看器
- C# 开发技巧 如何防止程序多次运行
- C# 开发技巧 实现属于自己的截图工具
- C# 开发技巧 如何使不符合要求的元素等于离它最近的一个元素
- C# 线程处理系列
- C# 线程处理系列 专题一:线程基础
- C# 线程处理系列 专题二:线程池中的工作者线程
- C# 线程处理系列 专题三:线程池中的I/O线程
- C# 线程处理系列 专题四:线程同步
- C# 线程处理系列 专题五:线程同步——事件构造
- C# 线程处理系列 专题六:线程同步——信号量和互斥体
- C# 多线程处理系列专题七——对多线程的补充
- C#网络编程系列
- C# 网络编程系列 专题一:网络协议简介
- C# 网络编程系列 专题二:HTTP协议详解
- C# 网络编程系列 专题三:自定义Web服务器
- C# 网络编程系列 专题四:自定义Web浏览器
- C# 网络编程系列 专题五:TCP编程
- C# 网络编程系列 专题六:UDP编程
- C# 网络编程系列 专题七:UDP编程补充——UDP广播程序的实现
- C# 网络编程系列 专题八:P2P编程
- C# 网络编程系列 专题九:实现类似QQ的即时通信程序
- C# 网络编程系列 专题十:实现简单的邮件收发器
- C# 网络编程系列 专题十一:实现一个基于FTP协议的程序——文件上传下载器
- C# 网络编程系列 专题十二:实现一个简单的FTP服务器
- C# 互操作性入门系列
- C# 互操作性入门系列(一):C#中互操作性介绍
- C# 互操作性入门系列(二):使用平台调用调用Win32 函数
- C# 互操作性入门系列(三):平台调用中的数据封送处理
- C# 互操作性入门系列(四):在C# 中调用COM组件
- CLR
- 谈谈: String 和StringBuilder区别和选择
- 谈谈:程序集加载和反射
- 利用反射获得委托和事件以及创建委托实例和添加事件处理程序
- 谈谈:.Net中的序列化和反序列化
- C#设计模式
- UML类图符号 各种关系说明以及举例
- C#设计模式(1)——单例模式
- C#设计模式(2)——简单工厂模式
- C#设计模式(3)——工厂方法模式
- C#设计模式(4)——抽象工厂模式
- C#设计模式(5)——建造者模式(Builder Pattern)
- C#设计模式(6)——原型模式(Prototype Pattern)
- C#设计模式(7)——适配器模式(Adapter Pattern)
- C#设计模式(8)——桥接模式(Bridge Pattern)
- C#设计模式(9)——装饰者模式(Decorator Pattern)
- C#设计模式(10)——组合模式(Composite Pattern)
- C#设计模式(11)——外观模式(Facade Pattern)
- C#设计模式(12)——享元模式(Flyweight Pattern)
- C#设计模式(13)——代理模式(Proxy Pattern)
- C#设计模式(14)——模板方法模式(Template Method)
- C#设计模式(15)——命令模式(Command Pattern)
- C#设计模式(16)——迭代器模式(Iterator Pattern)
- C#设计模式(17)——观察者模式(Observer Pattern)
- C#设计模式(18)——中介者模式(Mediator Pattern)
- C#设计模式(19)——状态者模式(State Pattern)
- C#设计模式(20)——策略者模式(Stragety Pattern)
- C#设计模式(21)——责任链模式
- C#设计模式(22)——访问者模式(Vistor Pattern)
- C#设计模式(23)——备忘录模式(Memento Pattern)
- C#设计模式总结
- WPF快速入门系列
- WPF快速入门系列(1)——WPF布局概览
- WPF快速入门系列(2)——深入解析依赖属性
- WPF快速入门系列(3)——深入解析WPF事件机制
- WPF快速入门系列(4)——深入解析WPF绑定
- WPF快速入门系列(5)——深入解析WPF命令
- WPF快速入门系列(6)——WPF资源和样式
- WPF快速入门系列(7)——深入解析WPF模板
- WPF快速入门系列(8)——MVVM快速入门
- WPF快速入门系列(9)——WPF任务管理工具实现
- ASP.NET 开发
- ASP.NET 开发必备知识点(1):如何让Asp.net网站运行在自定义的Web服务器上
- ASP.NET 开发必备知识点(2):那些年追过的ASP.NET权限管理
- ASP.NET中实现回调
- 跟我一起学WCF
- 跟我一起学WCF(1)——MSMQ消息队列
- 跟我一起学WCF(2)——利用.NET Remoting技术开发分布式应用
- 跟我一起学WCF(3)——利用Web Services开发分布式应用
- 跟我一起学WCF(3)——利用Web Services开发分布式应用
- 跟我一起学WCF(4)——第一个WCF程序
- 跟我一起学WCF(5)——深入解析服务契约 上篇
- 跟我一起学WCF(6)——深入解析服务契约 下篇
- 跟我一起学WCF(7)——WCF数据契约与序列化详解
- 跟我一起学WCF(8)——WCF中Session、实例管理详解
- 跟我一起学WCF(9)——WCF回调操作的实现
- 跟我一起学WCF(10)——WCF中事务处理
- 跟我一起学WCF(11)——WCF中队列服务详解
- 跟我一起学WCF(12)——WCF中Rest服务入门
- 跟我一起学WCF(13)——WCF系列总结
- .NET领域驱动设计实战系列
- .NET领域驱动设计实战系列 专题一:前期准备之EF CodeFirst
- .NET领域驱动设计实战系列 专题二:结合领域驱动设计的面向服务架构来搭建网上书店
- .NET领域驱动设计实战系列 专题三:前期准备之规约模式(Specification Pattern)
- .NET领域驱动设计实战系列 专题四:前期准备之工作单元模式(Unit Of Work)
- .NET领域驱动设计实战系列 专题五:网上书店规约模式、工作单元模式的引入以及购物车的实现
- .NET领域驱动设计实战系列 专题六:DDD实践案例:网上书店订单功能的实现
- .NET领域驱动设计实战系列 专题七:DDD实践案例:引入事件驱动与中间件机制来实现后台管理功能
- .NET领域驱动设计实战系列 专题八:DDD案例:网上书店分布式消息队列和分布式缓存的实现
- .NET领域驱动设计实战系列 专题九:DDD案例:网上书店AOP和站点地图的实现
- .NET领域驱动设计实战系列 专题十:DDD扩展内容:全面剖析CQRS模式实现
- .NET领域驱动设计实战系列 专题十一:.NET 领域驱动设计实战系列总结