Page 1 of 1

Como crear un servicio de windows

Posted: Sat Apr 08, 2023 2:41 pm
by leandro
Buenos días para todos

Queremos crear un proceso que se ejecute todo el tiempo, nos gustaría hacerlo como un servicio de windows, algo similar a lo que hace mysql. Pero no sabemos cual es el camino?

Asumimos que debemos tener un exe, pero como se hace para activarlo y desactivarlo, que tambien salga en la configuración del windows?

Image

Re: Como crear un servicio de windows

Posted: Sat Apr 08, 2023 4:56 pm
by cmsoft
Leandro:
Mira este link a ver si te es de utilidad
https://learn.microsoft.com/es-es/troub ... ed-service

Re: Como crear un servicio de windows

Posted: Mon Apr 10, 2023 3:40 pm
by leandro
Amigo buenos días, muchas gracias por la ayuda.

Buscando en el foro encontré varios post que habían hecho con anterioridad, voy a revisarlas a ver que solución encuentro. El tema que mas preocupa es que parece que todo esto esta escrito en harbour y nosotros usamos xharbour.

https://forums.fivetechsupport.com/view ... af#p222119
https://forums.fivetechsupport.com/view ... af#p188240

Re: Como crear un servicio de windows

Posted: Mon Apr 10, 2023 3:45 pm
by cmsoft
Leandro:
Por lo que leí en el link que te pasé, hablaba de como poner un programa (un exe) como servicio.
Creo que independientemente de con qué esté hecho.

Re: Como crear un servicio de windows

Posted: Mon Apr 10, 2023 3:52 pm
by leandro
Si tienes toda la razón, voy a crear un pequeño ejecutable para hacer la prueba de funcionamiento, otro de los problemas es que necesitamos que ese servicio se instale de manera automática, sin intervención del usuario.

Re: Como crear un servicio de windows

Posted: Mon Apr 10, 2023 4:29 pm
by cmsoft
Para eso puedes hacerlo mediante comandos de consola de windows desde dentro de tu programa
Por ejemplo con net start > servicios.txt puedes guardar los servicios que estan corriendo en windows, y ver luego el archivo servicios.txt si existe tu servicio, y sino, instalarlo. Y así cualquier otro comando de windows.
Por ejemplo, si quiero saber si está instalado MySQL en la terminal, hago lo siguiente:

Code: Select all | Expand

#include 'fivewin.ch'

Function Main()
LOCAL cComando , cRta
cComando := "C:\windows\system32\net.exe start > .\servicios.txt"
MemoWrit('servicios.bat',cComando)
DELETE FILE servicios.txt
WaitRun( 'servicios.bat', 0 )
cRta := MemoRead("servicios.txt")
IF !"MySQL"$cRta
   MsgStop("MySQL Error")
   //O instalar el servicio
   ELSE
   MsgInfo("MySQL Ok")
   // Seguir con tu logica
ENDIF
RETURN nil

Re: Como crear un servicio de windows

Posted: Tue Apr 11, 2023 6:48 pm
by leandro
Cesar muchas gracias por la ayuda... tu código funciono de maravilla.

El problema es que parece que ese POST que me recomendaste ya es algo antiguo, o no tengo los ejecutables necesarios para hacerlo, ya que al intentar correr el ejemplo no funciona, estuve buscando dentro de la carpeta los exe, pero no están.

Code: Select all | Expand

C:\Users>C:\Program Files\Resource Kit\Instsrv.exe Notepad C:\Program Files\Resource Kit\Srvany.exe
"C:\Program" no se reconoce como un comando interno o externo,
programa o archivo por lotes ejecutable.
Abusando de tu confianza y conocimiento, me podrías indicar como puedo crear el servicio con las instrucciones que sugieres. :oops:

De antemano gracias

Re: Como crear un servicio de windows

Posted: Tue Apr 11, 2023 8:41 pm
by cmsoft
Leandro, yo nunca lo he hecho, solo busque en google.
Probé intentando crearlo con el siguiente comando:

Code: Select all | Expand

sc.exe create prueba binpath= "c:\fwh21\samples\leandro.exe"
 
Tienes que ejecutarlo con privilegios de administrador
El servicio lo crea pero no pude ponerlo a correr