序转换成 Windows 服务,继而设计一个可以对服务进行全面控制的 Shell 。整个研究
过程旨在探讨 Windows 服务编程中的一些细节设计 , 以及命名管道在进程间通讯中的
应用。
1.3 1.3 1.3 1.3 研究目标 研究目标 研究目标 研究目标
Windows 服务之所以成为操作系统中的重要组成部分,就在于它能够为系统提供
各种各样的功能支持 , 而这其中所涉及到的进程间通信 、 内存管理等方面的内容又是
操作系统中最为核心的技术 。 因此 , 对一个服务程序的要求也比一般应用程序严苛许
多,如何设计实现一个功能健全、安全稳定的服务程序便是本文的研究目标之一 , 而
服务程序所要完成的功能本身并不是本文所要重点讨论的内容。
Windows 服务并不是一个孤立的程序,一个强大的服务往往要同时与多个进程进
行通信 , 甚至通过网络与远程主机连接 。 因此 , 进程间通信的方法与步骤也是本文一
个重要的研究对象 。 Windows 进程通信方法有很多种 , 选择一个适合目标程序的方法 ,本科毕业设计说明书(论文)
并将其完善地嵌入到服务程序中去,在整个项目的实现过程中是相当重要的一步。
正 是 由于 Windows 服务的功能非常强大,因此需要对其进行妥善的控制。在这方
面, Windows 操作系统自带的服务管理器就是一个非常值得借鉴的例子。它不仅能够
对服务进行启动 、 停止 、 暂停 、 恢复等常用操作 , 还能具体列出操作系统中的所有服
务及其相关信息。本文所要设计实现的,就是一个类似该服务管理器的 Shell , 除了
能够对现有服务进行操作以外 , 还能够通过指定的服务程序创建并 向 操作系统注册一
个新服务,这样才可以更加方便测试自己编写的服务程序。
综上所述,本文的最终设计目标是一个能够实现将给定字符串翻转的服务程序,
用于检测服务功能的本机客户端程序,以及一个用于创建、删除、控制指定服务 的
Shell 程序。客户端程序与服务之间利用命名管道进行通信。
1.4 1.4 1.4 1.4 研究方法 研究方法 研究方法 研究方法
1.4.1 开发步骤
首先需要编写测试程序并搭建测试环境,即编制一个基于 C/S 模式的面向连接的
采用命名管道的系统 , 该系统搭建成功后 , 将服务器程序改写成 Windows 服务 , 即在
服务控制管理器( SCM )的控制下运行的一个 Windows 服务。当使用 Windows 的 “ 控
制面板 ” → “ 管理工具 ” → “ 服务 ” 启动这个服务之后 , 客户端程序应该可以正确运行。
接下来需要编写控制该服务的 Shell 。出于简单起见首先将该 shell 程序实现为
一个在命令行方式执行的程序,命令行的执行方式如下所示:
例如: servicesshell 程序在 E 盘根目录下的 service 文件夹中,在命令行中键
入如下形式的命令:
E : \service > servicesshell $[ 命令 ] [ 参数 1] , [ 参数 2] ,
其中 , “ $ ” 为命令前缀符,命令及其参数含义见表 1 。
表 1 命令行方式下的命令及其参数的含义控制命令如下:
stop 含义:停(终)止服务
p ause 含义:暂停服务
r esume 含义:恢复(继续)服务
i nterrogate 含义:查询服务状态
命令行方式的 Shell 程序完成后,再将其改写成图形用户界面的典型的 Window s
程序,其界面参考 Windows XP “ 控制面板 ”→“ 管理工具 ”→“ 服务 ” 的样式 。
综上所述,本文的研究开发步骤流程图如图 1 所示。1.4.2 开发环境 Windows环境下一个Service控制Shell的设计与实现(3):http://www.751com.cn/jisuanji/lunwen_8766.html