2011-05-05 16 views
7

Me pregunto si es posible ejecutar mi aplicación antes de iniciar sesión en Windows. Es en realidad una aplicación WinForm (Preferiblemente distinta del servicio de Windows).Ejecutar un programa cuando Windows Boots (antes de iniciar sesión)

Quiero decir que mi aplicación debe estar ejecutándose incluso antes de iniciar sesión y debería estar en la Bandeja del sistema desde la que puedo "mostrar" o abrir la Interfaz para el usuario.

+6

¿Por qué no hacerlo un servicio? –

+1

Los servicios * no deberían * interactuar con el escritorio, lo que probablemente sea una mala cosa para una aplicación winform ... –

+0

No es factible que la aplicación se inicie antes de iniciar sesión si no se trata de un servicio. Y, sin embargo, una aplicación WinForms no puede ser un servicio. Entonces ... – BoltClock

Respuesta

7

tener: sucede

  • Algo entre el inicio del sistema y de inicio de sesión de usuario
  • Un icono en el área de notificación para que los usuarios interactúan con

Usted necesidad romper su aplicación arriba en dos componentes separados. Una de estas será una aplicación WinForms/WPF que proporciona el ícono del área de notificación y permite al usuario interactuar con ella. El otro será un servicio de Windows, o posiblemente una tarea programada.

Una vez hecho esto, el servicio de Windows puede enfocarse en hacer lo que sea necesario antes de iniciar sesión y la aplicación del área de notificación puede asumir la responsabilidad de mostrar los resultados o cualquier otra cosa al usuario final.

Para responder a la pregunta que planteó en los comentarios sobre la lectura de datos del Registro de eventos, sí, esto es posible. Hay otras preguntas de aquí que le dará respuesta en particular que:

+0

Una tarea programada si se ejecuta en Vista o superior sería mejor que un servicio, y no necesitaría modificar el código. Eso permitiría ejecutar el programa bajo la cuenta de administrador si es necesario mientras aún tiene una IU, pero recomendaría encarecidamente dividirlo para que la IU se ejecute bajo la cuenta de usuario y use WCF para comunicarse con el ícono de la bandeja si es necesario. –

+0

Rompimos nuestra aplicación utilizando un solo principal y buscando un argumento de "-servicio" si lo encontramos el servicio se inicia. Si no lo hacemos, lanzaremos el UI Loop – Wjdavis5

4

Este artículo MS podría ayudar, pero es un poco viejo:

http://support.microsoft.com/kb/142905

Es de esperar que le pondrá en el camino correcto sin embargo.

+0

ejecuta mi aplicación solo cuando el usuario inicia sesión ¿verdad? –

+0

No lo creo, este método realmente se ejecuta antes que el Shell, por lo tanto, después de cargar la GUI pero antes de que se cargue Explorer. Sí indica que su programa deberá iniciar Explorer para permitir que Windows continúe funcionando. –

2

Puede programar cualquier aplicación que se ejecutará cuando la computadora esté encendida con el Programador de tareas de Windows. Hay una opción correspondiente allí. ¿Pero por qué necesitarías esto? Deberías usar un servicio para esto.

3

Creo que no tiene sentido adquirir la entrada del usuario antes de que el usuario inicie sesión en el sistema. Entonces, si la aplicación necesita información de un usuario, ¿por qué iniciarla antes de que el usuario haya iniciado sesión? Si la aplicación solo comienza algún trabajo de fondo, entonces debería usar un servicio de Windows, ya que esta es la forma preferida en Windows.

+0

me refiero a que mi aplicación debe estar ejecutándose incluso antes de iniciar sesión y debería estar en la Bandeja del sistema desde la que puedo "mostrar" o abrir la interfaz para el usuario –

2

Type en run gpedit.msc, la directiva de grupo, No se puede establecer la puesta en marcha de la escritura. aplicación se iniciará antes de sesión de Windows, Paso a producir: -

Start --> Run --> gpedit.msc --> Local Computer Policy --> Windows Settings --> Script (Startup/ShutDown), 

Añadir que .exe se pondrá en marcha antes de inicio de sesión. No trate más en la directiva de grupo, puede suceder perjudiciales para el sistema

Por lógica programática, Pruebe con clave de registro este valor se actualiza en el registro, por nuestro programa podemos actualizar directamente Registro entonces podemos llamar a la aplicación

+3

. Si desea poner información sobre usted, hágalo en su página de perfil. – agf

Cuestiones relacionadas