WEB开发网
开发学院软件开发VC 用 C 语言编写 Windows 服务程序的五个步骤 阅读

用 C 语言编写 Windows 服务程序的五个步骤

 2006-07-20 11:40:51 来源:WEB开发网   
核心提示: STOP 请求是 SCM 终止服务的时候发送的,例如,用 C 语言编写 Windows 服务程序的五个步骤(6),如果用户在“服务”控制面板中手动终止服务,SHUTDOWN 请求是关闭机器时,安装成功后,便可以用服务控制面板来控制这个服务(参见图一),由 SCM 发

STOP 请求是 SCM 终止服务的时候发送的。例如,如果用户在“服务”控制面板中手动终止服务。SHUTDOWN 请求是关闭机器时,由 SCM 发送给所有运行中服务的请求。两种情况的处理方式相同:

  • 写日志文件,监视停止;
  • 向 SCM 报告 SERVICE_STOPPED 状态;

由于 ServiceStatus 结构对于整个程序而言为全局量,ServiceStatus 中的工作循环在当前状态改变或服务终止后停止。其它的控制请求如:PAUSE 和 CONTINUE 在本文的例子没有处理。

控制处理器函数必须报告服务状态,即便 SCM 每次发送控制请求的时候状态保持相同。因此,不管响应什么请求,都要调用 SetServiceStatus。

图一 显示 MemoryStatus 服务的服务控制面板

第四步:安装和配置服务

程序编好了,将之编译成 exe 文件。本文例子创建的文件叫 MemoryStatus.exe,将它拷贝到 C:\MyServices 文件夹。为了在机器上安装这个服务,需要用 SC.EXE 可执行文件,它是 Win32 Platform SDK 中附带的一个工具。(译者注:Visaul Studio .NET 2003 IDE 环境中也有这个工具,具体存放位置在:C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\Bin\winnt)。使用这个实用工具可以安装和移除服务。其它控制操作将通过服务控制面板来完成。以下是用命令行安装 MemoryStatus 服务的方法:

sc create MemoryStatus binpath= c:\MyServices\MemoryStatus.exe

发出此创建命令。指定服务名和二进制文件的路径(注意 binpath= 和路径之间的那个空格)。安装成功后,便可以用服务控制面板来控制这个服务(参见图一)。用控制面板的工具栏启动和终止这个服务。

上一页  1 2 3 4 5 6 7  下一页

Tags:语言 编写 Windows

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接