没有合适的资源?快使用搜索试试~ 我知道了~
用Visual C#创建Windows服务程序
需积分: 9 48 下载量 169 浏览量
2009-03-25
15:02:24
上传
评论
收藏 308KB DOC 举报
温馨提示
试读
11页
用Visual C#创建Windows服务程序用Visual C#创建Windows服务程序
资源推荐
资源详情
资源评论
用 Visual C#创建 Windows 服务程序
一.Windows 服务介绍:
Windows 服务以前被称作 NT 服务,是一些运行在 Windows NT、Windows 2000 和
Windows XP 等操作系统下用户环境以外的程序。在以前,编写 Windows 服务程序需要程序员很
强的 C 或 C++功底。然而现在在 Visual Studio.Net 下,你可以运用 C++或 Visual C#或 Visual
Basic.Net 很轻松的创建一个 Windows 服务程序。同样,你还可以运用其他任何与 CLR 相容的语
言来创建 Windows 服务程序。本文就向大家介绍如何运用 Visual C#来一步一步创建一个文件监
视的 Windows 服务程序,然后介绍如何安装、测试和调试该 Windows 服务程序。
在介绍如何创建 Windows 服务程序以前,我先向大家介绍一些有关 Windows 服务的背景知
识。一个 Windows 服务程序是在 Windows 操作系统下能完成特定功能的可执行的应用程序。
Windows 服务程序虽然是可执行的,但是它不像一般的可执行文件通过双击就能开始运行了,它
必须有特定的启动方式。这些启动方式包括了自动启动和手动启动两种。对于自动启动的
Windows 服务程序,它们在 Windows 启动或是重启之后用户登录之前就开始执行了。只要你将相
应的 Windows 服务程序注册到服务控制管理器(Service Control Manager)中,并将其启动类
别设为自动启动就行了。而对于手动启动的 Windows 服务程序,你可以通过命令行工具的 NET
START 命令来启动它,或是通过控制面板中管理工具下的服务一项来启动相应的 Windows 服务程
序(见图 1)。同样,一个 Windows 服务程序也不能像一般的应用程序那样被终止。因为
Windows 服务程序一般是没有用户界面的,所以你也要通过命令行工具或是下面图中的工具来停
止它,或是在系统关闭时使得 Windows 服务程序自动停止。因为 Windows 服务程序没有用户界
面,所以基于用户界面的 API 函数对其是没有多大的意义。为了能使一个 Windows 服务程序能够
正常并有效的在系统环境下工作,程序员必须实现一系列的方法来完成其服务功能。Windows 服
务程序的应用范围很广,典型的 Windows 服务程序包含了硬件控制、应用程序监视、系统级应用、
诊断、报告、Web 和文件系统服务等功能。
图 1
1
二.创建 Windows 服务程序:
在介绍如何创建 Windows 服务程序以前,我先向大家介绍一下.Net 框架下与 Windows 服务相关
的命名空间和其中的类库。.Net 框架大大地简化了 Windows 服务程序的创建和控制过程,这要归
功于其命名空间中的功能强大的类库。和 Windows 服务程序相关的命名空间涉及到以下两个:
System.ServiceProcess 和 System.Diagnostics。
要创建一个最基本的 Windows 服务程序,我们只需要运用.Net 框架下的
System.ServiceProcess 命名空间以及其中的四个类:
ServiceBase、ServiceInstaller、ServiceProcessInstaller 以及 ServiceController,其体系结
构可见图 2。
图 2
2
其中 ServiceBase 类定义了一些可被其子类重载的函数,通过这些重载的函数,服务控制管理
器就可以控制该 Windows 服务程序了。这些函数包括:
OnStart()、OnStop()、OnPause()以及 OnContinue()等四个。而且 ServiceBase 类
的子类还可以重载 OnCustomCommand()函数来完成一些特定的操作。通过重载以上的一些函
数,我们就完成了一个 Windows 服务程序的基本框架,这些函数的重载方法如下:
protected override void OnStart(string[] args)
{
}
protected override void OnStop()
{
}
protected override void OnPause()
{
}
protected override void OnContinue()
{
}
ServiceBase 类还为我们提供了一些属性,而这些属性是任何 Widnows 服务程序所必须的。
其中的 ServiceName 属性指定了 Windows 服务的名称,通过该名称系统就可以调用 Windows
服务了,同时其它应用程序也可以通过该名称来调用它的服务。而 CanPauseAndContinue 和
CanStop 属性顾名思义就是允许暂停并恢复和允许停止的意思。
3
剩余10页未读,继续阅读
资源评论
zheng_hong_jun16
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 自动驾驶-状态估计和定位之Error State EKF.pdf
- STM32F103ZET6+北斗
- 程序流程图的说明及图形示例
- FDN5618P-NL-VB一款SOT23封装P-Channel场效应MOS管
- Go语言基础(变量和基本类型).zip
- 基于CYCLONE2 (EP2C8Q) FPGA 设计PLL锁相环设置时钟Verilog源码Quartus工程文件.zip
- FDN372S-NL-VB一款SOT23封装N-Channel场效应MOS管
- date0425111111111111111111111
- 包含贪心算法的定义及python代码部分实现
- 自动驾驶-状态估计和定位之扩展卡尔曼滤波.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功