segunda-feira, outubro 20, 2008

NSIS - parte 4

Até o momento usamos os diálogos padrões do NSIS. Embora plenamente adequados, eles tem uma certa aparência "antiquada". O NSIS possui recursos muito sofisticados de programação que permitem alterar totalmente as telas. Melhor ainda, já existem alguns pacotes prontos que permitem gerar uma aparência "moderno" com pequeno esforço.

Modern UI

A Modern UI já existe a bastante tempo. Para usá-la, basta incluir o arquivo MUI.nsh e substituir as instruções Page e UninstPage por algumas macros:

#
# Exemplo de uso do "Modern UI" no NSIS
#

;--------------------------------
;Include Modern UI
!include "MUI.nsh"

Name "Calculadora"
OutFile "InstCalc.exe"
InstallDir "$PROGRAMFILES\Calc"
InstallDirRegKey HKLM "Software\NSIS_Exemplo3" "Install_Dir"

BrandingText "DQSoft - http://dqsoft.blogspot.com"

Var ChaveUninstall


;--------------------------------
; Acrescenta um logotipo

!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP "dqsoft.bmp"
!define MUI_HEADERIMAGE_UNBITMAP "dqsoft.bmp"

;--------------------------------
; Instalador

!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH

!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES

!insertmacro MUI_LANGUAGE "PortugueseBR"

Section "-Obrigatoria"
StrCpy $ChaveUninstall "Software\Microsoft\Windows\CurrentVersion\Uninstall\DQSoft_Calc"
SetOutPath $INSTDIR
File "c:\windows\system32\calc.exe"
WriteRegStr HKLM SOFTWARE\NSIS_Exemplo3 "Install_Dir" "$INSTDIR"
WriteUninstaller "uninstall.exe"
WriteRegStr HKLM $ChaveUninstall "DisplayName" "Calculadora (remoção)"
WriteRegStr HKLM $ChaveUninstall "UninstallString" '"$INSTDIR\uninstall.exe"'
WriteRegStr HKLM $ChaveUninstall "DisplayIcon" '"$INSTDIR\calc.exe"'
WriteRegStr HKLM $ChaveUninstall "DisplayVersion" "1.0.0"
WriteRegStr HKLM $ChaveUninstall "Publisher" "DQSoft"
WriteRegStr HKLM $ChaveUninstall "UrlInfoAbout" "http://dqsoft.blogspot.com"
SectionEnd

Section "Atalhos no Menu Iniciar"
CreateDirectory "$SMPROGRAMS\Exemplo 4"
CreateShortCut "$SMPROGRAMS\Exemplo 4\Calculadora.lnk" "$INSTDIR\calc.exe"
CreateShortCut "$SMPROGRAMS\Exemplo 4\Remove.lnk" "$INSTDIR\uninstall.exe"
SectionEnd

Section "Atalho no Desktop"
CreateShortCut "$DESKTOP\Calculadora.lnk" "$INSTDIR\calc.exe" "" "$INSTDIR\calc.exe" 0
SectionEnd

;--------------------------------
; Desinstalador

Section "Uninstall"
StrCpy $ChaveUninstall "Software\Microsoft\Windows\CurrentVersion\Uninstall\DQSoft_Calc"
Delete "$INSTDIR\*.*"
RMDir "$INSTDIR"
Delete "$SMPROGRAMS\Exemplo 4\*.*"
RMDir "$SMPROGRAMS\Exemplo 4"
Delete "$DESKTOP\Calculadora.lnk"
DeleteRegKey HKLM SOFTWARE\NSIS_Exemplo3
DeleteRegKey HKLM $ChaveUninstall
SectionEnd
De quebra, alteramos no script acima o branding text (mensagem que aparece na parte inferior da tela) e colocamos um logotipo nosso no alto da página:



Modern UI 2

Mais recentemente, surgiu a Modern UI 2. Para o exemplo acima, basta trocar o "!include MUI.nsh" por "!include MUI2.nsh"; as telas terão a mesma aparência. A vantagem da Modern UI 2 é que é muito mais fácil personalizar as telas apresentadas

Falando em personalização, no próximo post veremos como acrescentar uma tela específica de configuração no nosso instalador.

Um comentário:

Anônimo disse...

Olá obrigado pelo post muito bom.