¿Cuál es la forma más fácil de guardar el registro de instalación que se muestra en NSIS? Me parece recordar haber leído en alguna parte que puede recompilar el código NSIS con una bandera especial para permitirle guardar el registro. hay una manera mas facil?Guardar registro de instalación de NSIS
Respuesta
he aquí una solución directamente de la NSIS website
StrCpy $0 "$EXEDIR\install.log"
Push $0
Call DumpLog
!define LVM_GETITEMCOUNT 0x1004
!define LVM_GETITEMTEXT 0x102D
Function DumpLog
Exch $5
Push $0
Push $1
Push $2
Push $3
Push $4
Push $6
FindWindow $0 "#32770" "" $HWNDPARENT
GetDlgItem $0 $0 1016
StrCmp $0 0 exit
FileOpen $5 $5 "w"
StrCmp $5 "" exit
SendMessage $0 ${LVM_GETITEMCOUNT} 0 0 $6
System::Alloc ${NSIS_MAX_STRLEN}
Pop $3
StrCpy $2 0
System::Call "*(i, i, i, i, i, i, i, i, i) i \
(0, 0, 0, 0, 0, r3, ${NSIS_MAX_STRLEN}) .r1"
loop: StrCmp $2 $6 done
System::Call "User32::SendMessageA(i, i, i, i) i \
($0, ${LVM_GETITEMTEXT}, $2, r1)"
System::Call "*$3(&t${NSIS_MAX_STRLEN} .r4)"
FileWrite $5 "$4$\r$\n"
IntOp $2 $2 + 1
Goto loop
done:
FileClose $5
System::Free $1
System::Free $3
exit:
Pop $6
Pop $4
Pop $3
Pop $2
Pop $1
Pop $0
Exch $5
FunctionEnd
No funciona en modo silencioso, no funcionará si algo falla. ¿Cuál es el motivo de este tipo de registro? –
Esto no funciona con el NSIS de 64 bits. ¿Algunas ideas? – sproketboy
Obtengo la excepción lvm_getitemcount ya definida – JackNova
En un intento de mantener los tamaños de archivo pequeños, la instalación predeterminada del compilador NSIS no crea archivos de registro. Descargue el Special Build de una versión y cópielo en la aplicación makensis.exe
(y en la carpeta Stub
) para aplicarle parches y tener soporte de registro.
Una vez que haya hecho eso, sólo tiene que añadir lo siguiente a su escritura: se necesitan
LogSet on
ningún otro cambio. No tengo idea de por qué esto no es el predeterminado, como en mi caso, ¡solo agrega 48 bytes al tamaño del archivo!
Asegúrese de copiar tanto el archivo makensis COMO los archivos en el directorio Stub. Acabo de copiar el makensis.exe y todo funciona, pero el archivo install.log nunca se creó. –
'$ INSTDIR debe tener un valor antes de llamar a esta función o no funcionará. - del manual de NSIS –
Otro inconveniente: LogSet on tiene que ser agregado a CADA sección y/o función donde quiera registrar cosas (no solo una vez) – werner
- 1. Script de NSIS para la instalación de Java
- 2. NSIS - ¿Cómo detecto la instalación silenciosa?
- 3. NSIS Vs WiX Vs toda otra instalación de paquetes
- 4. ¿Cómo ejecutar un desinstalador de NSIS desde otro instalador de NSIS y esperar a que termine?
- 5. ¿Cómo se configuran los permisos de directorio en NSIS?
- 6. NSIS - Merge Modules
- 7. NSIS - Aplicación de actualización automática silenciosa
- 8. Establecer la clave de registro mediante la instalación de ClickOnce
- 9. Guardar perfil con registro en Django-Registration
- 10. Ms Acceso Guardar registro en el subformulario
- 11. NSIS Installer con .NET 4.5
- 12. guardar los valores de cuadro de texto en el Registro
- 13. Crear secuencia de comandos NSIS como paquete MSI
- 14. Recuperando la ruta de instalación del archivo desde el registro
- 15. Dónde y cómo Castle Windsor establece la instalación de registro
- 16. Ruta de instalación del directorio de referencia en el valor de registro con Wix
- 17. Modificación de las propiedades del instalador de NSIS
- 18. ¿Cómo solicitas permisos de administrador usando NSIS?
- 19. NSIS Nombre del instalador
- 20. Soluciones existentes para probar un script de NSIS
- 21. Función NSIS con más de 1 parámetro
- 22. Eliminación de la marca del instalador NSIS
- 23. NSIS Indicador de error del instalador
- 24. Instalador de Sign NSIS en Linux box
- 25. Métodos para depurar instaladores de NSIS?
- 26. NSIS - descargar y descomprimir archivos comprimidos de Internet
- 27. ¿Cómo se hace un instalador de actualización con NSIS?
- 28. WIX CustomAction - cómo obtener más información en la instalación/registro
- 29. Instalador NSIS con .NET 4.0
- 30. Copie un directorio usando NSIS.
Pruebe [Dump_log_to_file] (http://nsis.sourceforge.net/Dump_log_to_file). – Babak