参考资料:<<Windows服务编写原理及探讨>>
windows服务是怎么回事?如何建服务工程?如何调试服务程序?
本文一一为你解答..先把代码贴出来:
下面大概说一下服务的工作方法(针对这个工程):
首先,将参数"/install"或"/uninstall"传进WinMain里分别安装以及卸装服务.如果不带参数运行,就认为是服务控制管理启动该服务程序.
接着,安装主要做两件事:打开服务控制管理器(OpenSCManager)和创建服务(CreateService).
卸装和安装类似:打开服务控制管理器(OpenSCManager),关掉服务(ControlService(.., SERVICE_CONTROL_STOP, ..;)和删除服务(DeleteService).
假设已经安装好了,那么打开"服务管理",启动这个服务:
也可以用命令sc来做这事:
这时,由于ServiceMain里有这个句,
#ifdef _DEBUG
DebugBreak();
#endif
那么,系统就会弹出这样的对话框:
选择取消,再使用.net2003或者以上的开发工具调试它.
下面是另一个例子:服务是守护进程,当子进程死掉后,就启动一个新的子进程.
文件wservice.cpp
文件subprocess.cpp