2011-03-15 2 views
13

Quiero agregar una etiqueta que muestre la cadena de versión completa en la pantalla de bienvenida en el instalador que estoy creando usando NSIS con MUI2.¿Cómo puedo modificar el texto en MUI_WELCOME_PAGE cuando uso MUI2 para NSIS?

He buscado información sobre cómo hacer esto, pero solo encontré referencias al uso de MUI_INSTALLOPTIONS * que encontré w obsoleto para MUI2. Otro se refirió a las versiones más nuevas usando INSTALLOPTIONS * con las mismas opciones, pero no pude hacerlo funcionar. Finalmente, también encontré una referencia al uso de nsDialogs para esto, que es lo que estoy usando para mis páginas personalizadas. Sin embargo, no encontré ninguna referencia o ejemplos sobre cómo cambiar cualquiera de las páginas existentes que vienen con MUI2.nsh.

Encontré una manera de cambiar el MUI_HEADERTEXT, pero eso no afecta a la pantalla de bienvenida. Ojalá hubiera una forma de cambiar también el texto de bienvenida. Tal vez usando MUI_WELCOMETITLE y MUI_WELCOMEBODY o similar.

Respuesta

10

Hay MUI_WELCOMEPAGE_TEXT pero solo es útil si desea cambiar todo el texto y no solo agregar algo.

Durante la función de presentación de la página, se puede cambiar el texto de cualquier control:

outfile test.exe 
requestexecutionlevel user 

!include MUI2.nsh 

#!define MUI_WELCOMEPAGE_TEXT "New text goes here" 
!define MUI_PAGE_CUSTOMFUNCTION_SHOW MyWelcomeShowCallback 
!insertmacro MUI_PAGE_WELCOME 
!insertmacro MUI_PAGE_INSTFILES 
!insertmacro MUI_LANGUAGE "English" 


Function MyWelcomeShowCallback 
SendMessage $mui.WelcomePage.Text ${WM_SETTEXT} 0 "STR:$(MUI_TEXT_WELCOME_INFO_TEXT)$\n$\nVersion: foo.bar" 
FunctionEnd 

Section 
SectionEnd 

..o añadir un nuevo control:

outfile test.exe 
requestexecutionlevel user 

!include MUI2.nsh 

!define MUI_PAGE_CUSTOMFUNCTION_SHOW MyWelcomeShowCallback 
!insertmacro MUI_PAGE_WELCOME 
!insertmacro MUI_PAGE_INSTFILES 
!insertmacro MUI_LANGUAGE "English" 


Function MyWelcomeShowCallback 
${NSD_CreateLabel} 120u 150u 50% 12u "Version: foo.bar" 
Pop $0 
SetCtlColors $0 "" "${MUI_BGCOLOR}" 
FunctionEnd 

Section 
SectionEnd 
+4

que utiliza la segunda sugerencia y refugio' T intentó el primero. Funcionó como un amuleto, gracias :) – Spiralis

+1

Ambos métodos sugeridos aquí me funcionaron (NSIS3, MUI2) – CodingWithSpike

+0

descubrieron que 'SendMessage' requiere que' STR: 'se anteponga a la cadena de la manera difícil: http: //nsis.sourceforge .net/Reference/SendMessage – dothebart

Cuestiones relacionadas