2010-07-18 11 views
6

Estoy tratando de crear un servicio de Windows con C# en .net que se ejecuta antes de que el usuario inicie sesión ... cuando un usuario inicia sesión en un símbolo debe aparecer en la bandeja del sistema (al lado del reloj) para mostrarle al usuario que el servicio se está ejecutando. haciendo doble clic en ese símbolo se debe mostrar al usuario una utilidad de configuración (escrita en wpf), para que pueda configurar el servicio, leer datos y etc.Servicio de Windows con la herramienta de administración WPF

¿existe la posibilidad de hacer esto en una sola aplicación?

gracias de antemano por cualquier ayuda !!!

Respuesta

4

No, no puede hacer esto con una aplicación ya que los servicios se ejecutan con un usuario diferente en una sesión diferente. Necesita crear dos aplicaciones e implementar alguna comunicación entre ambas.

No recomendaría el uso de canalizaciones con nombre directamente (como Kieren Johnstone suggested), pero para echar un vistazo a WCF que fue diseñado para la comunicación entre procesos y abstrae muy bien los detalles de implementación de la tecnología de comunicación lejos de usted. Aquí hay un enlace que puede ayudarlo con WCF: http://www.switchonthecode.com/tutorials/wcf-tutorial-basic-interprocess-communication.

Best Regards,
Oliver Hanappi

3

Dentro de una aplicación, no. Los servicios se ejecutan en la sesión 0, por favor ver aquí:

http://www.microsoft.com/whdc/system/sysinternals/session0changes.mspx

Su mejor apuesta es utilizado canalizaciones con nombre, consulte aquí:

http://www.switchonthecode.com/tutorials/dotnet-35-adds-named-pipes-support

.. ... o un archivo mapeado de memoria, consulte aquí:

http://msdn.microsoft.com/en-us/library/dd997372.aspx

En el marco de más-.NETty, también se puede utilizar Remoting. Tendrá que encontrar alguna interfaz o protocolo para facilitar la comunicación entre el servicio y la utilidad de administración. Administrar el inicio/detención del proceso sería más fácil y podría usar la clase ServiceController (MSDN ref).

Espero que ayude (¡y no es muy desalentador)!

Cuestiones relacionadas