创建没有视觉工作室的Windows服务[英] Creating Windows service without Visual Studio

本文是小编为大家收集整理的关于创建没有视觉工作室的Windows服务的处理方法,想解了创建没有视觉工作室的Windows服务的问题怎么解决?创建没有视觉工作室的Windows服务问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

因此,使用Visual Studio创建Windows服务是相当微不足道的.我的问题要深入一些,即实际上可以使可执行的可以安装作为服务以及如何作为直接C应用程序编写服务.我在此上找不到很多参考,但是我认为必须实现一些界面,以便我的.exe可以安装为服务.

推荐答案

设置您的可执行文件作为服务是其中的一部分,但实际上,它通常是由您使用的任何安装软件来处理的.您可以在测试时使用命令行SC工具(或者如果您不需要安装程序).

重要的是,您的程序必须在启动时调用startervicectrldispatcher().这将您的服务连接到服务控制管理器,并设置ServiceMain例程,这是您的服务主要入口处.

servicemain(您可以实际喜欢的任何东西,但似乎总是是servicemain),然后应致电registerservicectrlhandlerex()定义回调例程,以便在发生某些事件时通知您的服务.

>

这是我几年前写的服务的一些摘要:

设置为服务:

SERVICE_TABLE_ENTRY ServiceStartTable[] =
{
   { "ServiceName", ServiceMain },
   { 0, 0 }
};

if (!StartServiceCtrlDispatcher(ServiceStartTable))
{
   DWORD err = GetLastError();
   if (err == ERROR_FAILED_SERVICE_CONTROLLER_CONNECT)
      return false;
}

ServiceMain:

void WINAPI ServiceMain(DWORD, LPTSTR*)
{
    hServiceStatus = RegisterServiceCtrlHandlerEx("ServiceName", ServiceHandlerProc, 0);

服务处理程序:

DWORD WINAPI ServiceHandlerProc(DWORD ControlCode, DWORD, void*, void*)
{
    switch (ControlCode)
    {
    case SERVICE_CONTROL_INTERROGATE :
        // update OS about our status
    case SERVICE_CONTROL_STOP :
        // shut down service
    }

    return 0;
}

其他推荐答案

希望这会有所帮助:

http://support.microsoft.com/kb/kb/251192

看来,您需要简单地使用二进制执行操作以将其注册为服务.

其他推荐答案

基本上,您必须设置一些注册表设置以及某些接口才能实现.

查看以下查看: http://msdn.microsoft.com/en en -us/library/ms685141.aspx

您对SCM感兴趣(服务控制经理).

本文地址:https://www.itbaoku.cn/post/359055.html