C/Visual C - Crear un Servicio de NT

 
Vista:

Crear un Servicio de NT

Publicado por MiName.com (1 intervención) el 25/08/2002 23:38:12
Hola a todos, muy buenas,

He hecho una aplicación y en C++ y me gustaría que fuese en servicio de NT para que estuviese siempre en ejecución sin tener que iniciar una sesión.

Como puedo crear una aplicación Servicio de NT???
Donde puedo encontrar información sobre este tema?'??

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Crear una aplicación como servicio de NT en C++

Publicado por Alejandro (913 intervenciones) el 14/03/2025 19:36:27
Para crear una aplicación que funcione como un servicio de NT en C++, puedes seguir estos pasos:

1. Utilizar la API de Windows para servicios: Windows proporciona una API específica para crear y gestionar servicios. Debes familiarizarte con funciones como `CreateService`, `StartService`, y `DeleteService`. Estas funciones te permitirán registrar tu aplicación como un servicio en el sistema.

2. Estructura básica de un servicio: Tu aplicación debe incluir una función de entrada que maneje el servicio. Debes definir un `SERVICE_TABLE_ENTRY` que contenga el nombre del servicio y la función que se ejecutará cuando el servicio se inicie.

3. Ejemplo básico:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <windows.h>
 
  void WINAPI ServiceMain(DWORD argc, LPTSTR* argv);
  void WINAPI ServiceCtrlHandler(DWORD ctrlCode);
 
  SERVICE_STATUS_HANDLE g_ServiceStatusHandle = NULL;
 
  void WINAPI ServiceMain(DWORD argc, LPTSTR* argv) {
      g_ServiceStatusHandle = RegisterServiceCtrlHandler(TEXT("MyService"), ServiceCtrlHandler);
      // Aquí va la lógica de tu servicio
  }
 
  void WINAPI ServiceCtrlHandler(DWORD ctrlCode) {
      // Manejo de eventos de control del servicio
  }
 
  int main() {
      SERVICE_TABLE_ENTRY ServiceTable[] = {
          { TEXT("MyService"), ServiceMain },
          { NULL, NULL }
      };
      StartServiceCtrlDispatcher(ServiceTable);
      return 0;
  }


4. Compilar y registrar el servicio: Una vez que hayas escrito tu código, compílalo y utiliza la herramienta `sc.exe` para registrar tu servicio en el sistema. Por ejemplo:
1
sc create MyService binPath= "C:\ruta\a\tu\aplicacion.exe"

5. Ejecutar el servicio: Después de registrarlo, puedes iniciar el servicio desde el panel de servicios de Windows o usando el comando:
1
sc start MyService

Recursos adicionales:


- Documentación de Microsoft: Puedes encontrar información detallada sobre cómo crear servicios de Windows en la documentación oficial de Microsoft (https://learn.microsoft.com/en-us/windows/win32/api/services/).
- Guías y tutoriales: Existen numerosos tutoriales en línea que explican cómo crear servicios de Windows en C++. Un recurso útil es el artículo que proporciona una guía paso a paso sobre cómo ejecutar una aplicación como un servicio de Windows, que puedes encontrar en Miguel en Red (https://www.miguelenred.es/ejecutar-una-aplicacion-como-un-servicio-de-windows/).

Espero que esta información te sea útil para desarrollar tu servicio de NT. ¡Buena suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar