首页新闻体育娱乐视频财经科技汽车房产游戏女性天气短信邮箱导航通行证
爱问(iAsk.com)
科技时代新浪首页 > 科技时代 > 学园 > 正文

用C#开发Windows服务监控系统使用


http://www.sina.com.cn 2006年06月20日 17:00 天极yesky

  作者:朱先忠编译

  摘要 本文将向你展示如何用C#开发一个Windows服务来记录系统使用情况。

  每一个人都想知道他们每天在什么时间启动和关闭自己的系统,以及系统每天运行了多少时间。如果用一个DataGrid控件来显示系统启动、关闭及所消耗的时间将是一个不错的主意。

  在本文中,我提供了一种方法来实现这一目标-使用C#开发一个Windows服务。其实,每个人都了解一点Windows服务。但是,为了介绍之目的,我仅尽可能少得解释一下Windows服务。然后,我们来讨论如何设计一个这样的应用程序。

  一、 什么是Windows服务?

  其实,Windows服务只是运行于后台的并不要求我们了解的一种进程而已。而且,它们的绝大部分并不要求用户交互。如果我们在"开始"菜单的"运行"命令行下输入"services.msc"并回车,那么我们就可以看到在我们当前的系统中运行的服务情况。其中,有一些服务是当系统启动时自动启动的。但是,也有一些服务必须在我们的手工启动下才能运行。

  二、 Windows服务的优点

  1. 能够自动运行。

  2. 不要求用户交互。

  3. 在后台运行。

  一般情况下,Windows服务被用于耗费时间很多的进程中,例如备份数据库,等等。

  现在,我们要设计一个Windows服务来实现记录你的系统启动和关闭需要的时间。我使用Visual Studio 2003设计了这个应用程序。

  三、 设计Windows服务

  第一步:

  首先打开Visual Studio并且选择Visual C#工程。选择模板类型为Windows服务,并命名为Monitoring,如下图所示:

用C#开发Windows服务监控系统使用

选择模板类型为Windows服务

  第二步:

  按F7键打开代码窗口。然后,加入对System.IO命名空间的引用,以便把系统定时功能编写到一个文件中。下一步,用Monitoring一词替换所有出现的Service1一词。之后,转入设计模式(按键shift+F7)。选择Solution Explorer(按键Ctrl+Alt+L)。点击Service1.cs并且命名它为Monitoring.cs。

  之后,转入代码窗口。在OnStart事件中加入下列代码,如下图所示:

用C#开发Windows服务监控系统使用

在OnStart事件中加入代码

  在OnStart事件中实现的功能

  首先,在c盘上创建一个xml文件,并命名为file1。然后,在这个文件中建立如下代码:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<times>

  然后,关闭它。

  我创建了一个服务,它能够在系统启动时自动启动并且记录下启动时间。当系统关闭时,它也关闭。而且,它会记录下关闭时间和系统中所花费的时间。

  首先,我要创建一个StreamWriter来把系统启动时间写入file1.xml文件中。

  在把代码复制到你的OnStart事件后,正好在Monitoring构造器的上面创建一个公共变量temp,如下图所示:

用C#开发Windows服务监控系统使用

创建一个公共变量temp

  此后,把这部分代码复制到你的代码窗口:

  再把下面代码复制到OnStart事件中,如下图所示:

StreamWriter writer=File.AppendText("d:\file1.xml");
writer.Write("<time>");
writer.WriteLine("<Date> "+ (DateTime.Now.ToString("dd-MM-yy"))+"</Date>");
writer.WriteLine("<started> "+ (DateTime.Now.ToString("t"))+"</started>");
temp=DateTime.Now;
writer.Close();

用C#开发Windows服务监控系统使用

复制到OnStart事件

 [1] [2] [下一页]

发表评论

爱问(iAsk.com)



评论】【论坛】【收藏此页】【 】【多种方式看新闻】【下载点点通】【打印】【关闭




科技时代意见反馈留言板 电话:010-82628888-5595   欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

Copyright © 1996 - 2006 SINA Inc. All Rights Reserved

新浪公司 版权所有