installer - nsis_error - Guardar el registro de instalación de NSIS
nsis error al desinstalar (3)
Aquí hay una solución directamente desde el Dump_log_to_file
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
¿Cuál es la forma más fácil de guardar el registro de instalación que se muestra en NSIS? Parece recordar haber leído en alguna parte que puede volver a compilar el código NSIS con un indicador especial para permitirle guardar el registro. hay una manera mas facil?
En un intento por mantener el tamaño de los archivos pequeños, la instalación predeterminada del compilador NSIS no crea archivos de registro. Descargue la versión especial de una versión y makensis.exe
sobre la aplicación makensis.exe
(y la carpeta Stub
) para parchearla para que tenga soporte de registro.
Una vez que haya hecho eso, simplemente agregue lo siguiente a su script:
LogSet on
No se necesitan otros cambios. No tengo idea de por qué esto no es predeterminado, como en mis casos, ¡solo agrega 48 bytes al tamaño del archivo!