Objeto Remoto, Servicio de Windows, en tiempo de ejecución averi gu

13/02/2006 - 14:34 por Tito | Informe spam
He creado un proyecto que crea un servicio de windows y tiene asociado su
respectivo instalador. Este servicio lo utilizo para alojar un objeto remoto

Lo he creado de tal manera que a la hora de instalarlo, si por ejemplo pongo:
installutil /name=App Ejecutable.exe
me crea un servicio con el nombre asignado en el parámetro name, hasta ahí
todo bien, pero el problema que tengo y no se cómo conseguirlo, es que cuando
se me inicie este servicio, averiguar en tiempo de ejecución el nombre de
dicho servicio. Si pongo this.ServiceName me devuelve "". Si me voy a la
consola de windows para ver los servicios y le hago doble click, en la
ventana veo que me aparece el servicio con un nombre.

No se si me habré explicado bien, pero si alguien lo ha entendido y sabe
cómo conseguir lo que quiero, le agradecería que me dijera cómo puedo hacerlo

Muchas gracias de antemano
 

Leer las respuestas

#1 Tito
13/02/2006 - 16:34 | Informe spam
Me voy a contestar a mi mismo y de paso, igual le sirve a alguien:

Lo que he hecho, es que en el instalador, en el OnAfterInstall es acceder al
registro de windows, exactamente a:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MiServicio

y aquí hay un valor que es ImagePath, pues bien, lo que he hecho es coger
ese valor y añadirle un espacio en blanco más el nombre de la aplicación que
va a tirar de este servicio.

De este modo, en el main del servicio tengo el args
static string strNombreApp = string.Empty;
static void Main(string[] args)
{
if (args.Length > 0)
strNombreApp = args[0];
...
...
...
}

y luego en el OnStart del servicio ya tengo la variable strNombreApp por lo
que a la hora de configurar el objeto remoto ya se que config tengo que
cargar dependiendo de la aplicación que sea

Espero que a alguien le sirva

"Tito" escribió:

He creado un proyecto que crea un servicio de windows y tiene asociado su
respectivo instalador. Este servicio lo utilizo para alojar un objeto remoto

Lo he creado de tal manera que a la hora de instalarlo, si por ejemplo pongo:
installutil /name=App Ejecutable.exe
me crea un servicio con el nombre asignado en el parámetro name, hasta ahí
todo bien, pero el problema que tengo y no se cómo conseguirlo, es que cuando
se me inicie este servicio, averiguar en tiempo de ejecución el nombre de
dicho servicio. Si pongo this.ServiceName me devuelve "". Si me voy a la
consola de windows para ver los servicios y le hago doble click, en la
ventana veo que me aparece el servicio con un nombre.

No se si me habré explicado bien, pero si alguien lo ha entendido y sabe
cómo conseguir lo que quiero, le agradecería que me dijera cómo puedo hacerlo

Muchas gracias de antemano

Preguntas similares