Ejecutar una aplicación como un servicio [TUTORIAL]

Puedes encontrar todo tipo de tutoriales y manuales referentes a AMS
Buenas, ante todo, he cambiando recientemente de PC y no dispongo de AMS y tampoco creo que lo valla a instalar en un futuro proximo, jeje, pero bueno este tutorial os puede servir igual.

Es posible que queramos que una aplicacion esté siempre arrancada y funcionando, como un servicio de windows mas, AMS no dispone de funcionalidad para esto, pero a fin de cuentas cualquier ejecutable es valido para ser ejecutado como servicio, ya sea uno de AMS o uno hecho en c#.

Para empezar, teneis que bajar este exe y colocarlo junto al de vuestra aplicacion.

Luego teneis que crear un archivo .ini con el nombre que le quereis asignar al servicio, por ejemplo MiServicioDemo.ini y añadir este contenido:

[ServiceEx]
ServiceExeFullPath = "C:\Path to EXE\My Program.exe"
; program arguments to be sent to executable
options = -servicio
; can program interact with desktop [true | false] (default: true)
desktop = true
; start type (valid values: Auto Manual Disabled) (default: auto)
Start=Auto
; start the service upon installation [true | false] (default: no)
StartNow=true


Si os fijais, he puesto el argumento -servicio, ya que queremos tener la funcionalidad de auto-deploy, esto quiere decir, que si ejecutamos el exe, queremos que instale el servicio y se cierre, para esto tenemos que comprobar el _CommandLineArgs, si no encontramos el parametro -servicio, deberiamos...

Instalar el servicio

File.Run(...) serviceex.exe y los argumentos, install MiServicioTest (o como coño lo hayais llamado)
*optional Application.Close()

Ahora la aplicacion se ejecuta como un servicio de manera automatica y realiza funciones en segundo plano todo el tiempo, pudiendo interactuar con otras aplicaciones por cualquier medio de intercambio.

Parar el servicio

File.Run(...) "net" con los argumentos "stop MiServicioTest"

Arrancar el servicio

File.Run(...) "net" con los argumentos "start MiServicioTest"

Desisntalar el servicio

File.Run(...) "serviceex.exe" con los argumentos "remove MiServicioTest"

Mas info en: http://serviceex.com/

Saludos

Editado enlace a ServiceEx (link privado y con informe antivirus, el oficial esta caido):
informe: https://www.virustotal.com/es/file/2f22 ... 418921560/

https://mega.co.nz/#!LR4TnRjB!-_K47cIB7 ... 09CBI0CAdE

interesante...