2011-09-20 168 views
10

Quiero utilizar Inno Setup (http://www.jrsoftware.org/isfaq.php) para compilar un instalador para una aplicación.Inno Setup: ¿cómo puedo hacer que mi programa se ejecute cuando un usuario inicia sesión en Windows?

Quiero que esta aplicación se inicie cada vez que un usuario inicia sesión en su cuenta en el equipo con Windows.

¿Cómo puedo decirle a Inno Setup que inicie el programa cuando un usuario inicia sesión?

+0

¿El usuario también quiere eso? –

+0

Ponga un acceso directo a la aplicación en la carpeta del menú de inicio 'Inicio' del usuario? Agregar una clave a la entrada de registro 'Ejecutar' del usuario? –

+0

Sí, eso es lo que quiere el usuario. OK, ¿cómo hago eso con Inno Setup? –

Respuesta

27

Ponga un acceso directo en la carpeta de inicio del perfil Todos los usuarios. Ver el artículo de la base de conocimientos 'Create shortcuts in the Startup (or Autostart) group', que incluye el siguiente ejemplo:

[Setup] 
PrivilegesRequired=admin 

[Icons] 
Name: "{commonstartup}\My Program"; Filename: "{app}\MyProg.exe" 

Si desea que el programa se ejecute sólo cuando el usuario que instaló el programa registra en, a continuación, utilizar {userstartup} en lugar de {commonstartup}. En ese caso, no se requieren privilegios de administrador.


O si decide escribir en clave 'Run' de registro (kb article):

[Registry] 
Root: HKCU; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "MyProg"; ValueData: """{app}\MyProg.exe"""; Flags: uninsdeletevalue 

Si utiliza 'HKLM', de nuevo los privilegios de administrador se requiere.

+0

¡Gracias! Esto es lo que necesitaba! –

+0

¿Qué ocurre si deseo instalarme como un servicio de Windows? Intenté el camino que mencionaste en tu respuesta. Pero el programa aparece y sale a pesar de que tiene un bucle while funcionando para siempre. – rahulserver

+0

@rahulserver - Podría hacer un atajo a "net start svcname". –

1

Tal vez sería útil para alguien ...

me encontré con algunos problemas en Windows 8, cuando se trata de construir configuración que pondría automáticamente la ejecución automática clave de registro, tales como:

Root: "HKCU"; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "NHMMNAS"; ValueData: "{app}\{#MyAppExeName}"; Flags: uninsdeletevalue 

para el funcionamiento de mi Aplicación .NET de 32 bits en cada inicio de Windows. Se produjo que por aplicación de 32 bits era necesaria una pequeña modificación que fue reemplazando Root: "HKCU" con Root: "HKCU32" lo que la entrada en el script de instalación fue:

Root: "HKCU32"; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "NHMMNAS"; ValueData: "{app}\{#MyAppExeName}"; Flags: uninsdeletevalue 

Después de la adición de la línea y volver a instalar, mi solicitud inició el arranque de sistema sin problemas.

+0

Por lo tanto, estaba ejecutando un modo de instalación de 64 bits en el que la clave raíz 'HKCU' se correlaciona con la vista de registro de 64 bits. También vale la pena mencionar que puede usar el programador de tareas para esta tarea. – TLama

+0

Gracias por su comentario, no se me pasó por la cabeza :), pero para el supervisor de tareas creo que no tengo suficiente conocimiento –

+0

La herramienta del programador de tareas está bastante bien ['describe'] (http://msdn.microsoft) .com/en-us/library/windows/desktop/bb736357 (v = vs.85) .aspx) con muchos ['examples'] (http://technet.microsoft.com/en-us/library/cc725744. aspx # BKMK_create), para el arranque del sistema, por ejemplo ['this one'] (http://technet.microsoft.com/en-us/library/cc725744.aspx#BKMK_startup). – TLama

Cuestiones relacionadas