如何使Win 32 App作为Windows服务运行?

时间:2010-01-10 19:59:41

标签: winapi windows-services

我们公司刚刚完成了一个Win 32应用程序项目,我们有一个可执行程序,它在Windows中运行良好。现在我们必须在网络帐户下将其作为Windows服务运行。我是Windows服务的新手,所以请建议,我该怎么做才能将这个程序转换为Windows服务?谢谢!

3 个答案:

答案 0 :(得分:3)

如果您的意思是要将应用程序作为Windows服务运行,则Windows资源工具包中有一个实用程序。它的名字是srvany.exe,你可以在这里找到它的文档: http://search.microsoft.com/search/results.aspx?st=b&View=en-us&s=1&c=0&qu=137890

可以在此处下载Srvany.exe作为Windows Server 2003资源工具包工具的一部分: http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en

答案 1 :(得分:3)

如果“Win32应用程序项目”是指“GUI程序”,那么将其作为服务运行。否则,这就是你需要做的事情:

  • 程序启动后立即使用RegisterServiceCtrlHandler注册服务控制处理程序。这是必需的,因此您可以处理启动和停止事件。如果您不这样做,服务管理器将终止您的进程,因为它认为它不是真正的服务。
  • 如果您有安装程序,则可以使用sc命令创建服务。例如:sc create MyService binPath= "C:\PathToExe\MyService.exe" type= own start= auto
  • 如果您有代码,可以致电CreateService

答案 2 :(得分:0)

Srvany.exe是一个优秀的免费解决方案(如alemjerus所述),但如果您在专业环境中工作并需要强大/高级功能集,请查看AlwaysUp

祝你好运!