2009-10-04 24 views
19

Estoy intentando crear un instalador usando la interfaz de usuario moderna de NSIS por primera vez. Me gustaría saber cómo puedo agregar una opción (casilla de verificación) para que los usuarios seleccionen tener un acceso directo de escritorio creado en la página de finalización (la última pantalla del instalador) además de la opción "Ejecutar XXXX" que ya está allí.¿Cómo agregar una opción de acceso directo de escritorio en la página de finalización en el instalador de NSIS?

+3

dos motivos: (a) no activa la opción "Poner inútil casilla de verificación "icono de escritorio" de forma predeterminada. El escritorio es un método de lanzamiento de programa muy inferior en Vista y más tarde comparado con la búsqueda en el menú de inicio. Y (b) Asegúrese de que la casilla de verificación Ejecutar hace que el programa se ejecute no con privilegios adminsitrativ, sino como el usuario actualmente conectado de forma interactiva. – Joey

Respuesta

30

Si no está utilizando casilla Léame en la página final, se puede usar para realizar cualquier acción que desee:

Function finishpageaction 
CreateShortcut "$desktop\foo.lnk" "$instdir\foo.exe" 
FunctionEnd 

!define MUI_FINISHPAGE_SHOWREADME "" 
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED 
!define MUI_FINISHPAGE_SHOWREADME_TEXT "Create Desktop Shortcut" 
!define MUI_FINISHPAGE_SHOWREADME_FUNCTION finishpageaction 
+0

¡Gracias! ¡Esto hace exactamente lo que necesito! – takoloco

+1

¿No deberíamos usar MUI_FINISHPAGE_RUN, MUI_FINISHPAGE_RUN_TEXT, MUI_FINISHPAGE_RUN_FUNCTION, MUI_PAGE_FINISH en su lugar? ¿Cuál es la diferencia entre estos y MUI_FINISHPAGE_SHOWREADME, etc.? – AnAurelian

+0

@David No hay diferencia real más que el texto predeterminado. – Anders

8

Una alternativa, y la forma más sencilla de permitir que el usuario agregue un icono de escritorio es crear una sección personalizada que lo haga. El usuario puede elegir agregar el acceso directo en la página de "características" del instalador y no tiene que hacer modificaciones importantes de la interfaz de usuario.

Section "Desktop Shortcut" SectionX 
    SetShellVarContext current 
    CreateShortCut "$DESKTOP\Your Program.lnk" "$INSTDIR\YourProgram.exe" 
SectionEnd 
+0

Como esto coloca la opción en una sección inusual, inesperada y a menudo simplemente omitida del instalador, recomendaría no hacerlo así. Se espera que al preguntar si el usuario desea que se coloque un atajo se encuentre al final del proceso de instalación, por la razón que sea. –

+0

Generalmente, se espera al final de la instalación, porque es un detalle menor que se puede omitir por completo. Los accesos directos de escritorio son _convenientes, pero no necesarios_. No son necesarios para instalar la aplicación. Mantener este tipo de opciones al final del proceso de instalación ayuda a que el usuario sienta que se está haciendo más con menos esfuerzo. –

Cuestiones relacionadas