Tornar um aplicativo portátil com NSIS

Fevereiro 2017

Este tutorial permite seguir passo a passo a criação de um lançador com NSIS e o template libre de Karl Loncarek. Para este tutorial, eu retomei o exemplo da dica Portabilizar uma aplicação com AutoIt portabilização do heidiSQL adaptando-o, para permitir a comparação destas duas técnicas. Note que o template (modelo do layout) (1) utilizado é mais completo que aquele que eu apresentei para AutoIt e eu descreverei aqui somente as principais funções, quer dizer a criação de um lançador simples para uma aplicação que não necessita muitos esforços para ser torná-lo portátil. Mas ele pode muito mais.


Saiba que, se o programa possui um driver, ele não pode tornar-se portátil desta maneira; se ele possui arquivos do diretório Windows ou outros diretórios do sistema: ele não pode tornar-se e, se houver necessidade de registrar uma DLL/OC. ele não poderá ser portátil.

Como com AutoIt, é preciso conhecer as chaves do registro utilizadas pelo software que será portátil, bem como os diretórios de configuração como os diretórios da aplicação no perfil. Para HeidiSQL não tem diretórios e a única chave do registro é:
HKEY_CURRENT_USERSoftwareHeidiSQL


Baixe e abra o template de Karl Loncarek com um editor de texto do tipo PSPad ou Notepad++. Passemos as primeiras linhas começadas por um ' ;' (ponto e vírgula, é o copyright do template):


Modificações do template

Você pode eventualmente modificar as primeiras linhas para colocar o nome, a versão, e seu próprio site Web.

Passemos agora à sessão Define constants do template. As linhas desta sessão começam todas por !define e os valores a modificar são compreendidos entre os dois "".
!define AUTHOR "";, Coloque seu nome ou pseudo entre os dois "".
!define APP "" ;. Coloque entre os dois "" o nome da aplicação e de seu diretório.
!define VER "0.0.0.0" ;. Modifique os zeros para indicar o n° da versão do lançador.
!define EXE "" ;. Coloque entre os dois "" o nome do executável.
!define PNAME "${App}Portátil" ;. Formato do nome do lançador .
!define ICON "${PNAME}.ico" ;. Se você quer colocar um ícone personalizado (que não seja aquele padrão do NSIS) Coloque no mesmo diretório que o template com o mesmo formato do nome que tem esta linha, comece (via um ponto e vírgula) a linha se você quiser guardar o ícone NSIS.
!define SPLASHIMAGE "${PNAME}.jpg" ;. Se você quer juntar um splashscreen ao lançador, comece (via um ponto e vírgula) a linha se você não quiser a imagem de apresentação.
!define REGKEYS "" ;. É ai que nossa chave do registro deve ser inserida, se você possui diversas chaves para inserir separe-as por um duplo símbolo|| ((AltGr + 6) 2 vezes) comece (via um ponto e vírgula) a linha se não houver chave de registro.
!define SETTINGSFILES "" ;. Esta linha é para os eventuais arquivos de configuração (.ini) com seus caminhos relativos. Se houver diversos separe-os por um duplo símbolo || ((AltGr + 6) 2 vezes) comece (via um ponto e vírgula) a linha se não houver arquivos .ini.
!define SETTINGSDIRS "" ;. Inserir aqui os caminhos para os eventuais diretórios a juntar no lançamento da aplicação. Se houver diversos separe-os por um duplo símbolo || ((AltGr + 6) 2 vezes) comece (via um ponto e vírgula) a linha se não houver diretório a integrar
!define INI "${PNAME}.ini" ;. Comece (via um ponto e vírgula) esta linha.

Olhe aqui a captura do meu lançador para HeidiSQL (Abrir o link em uma nova guia):


Compilação

Faça o backup. O seu lançador está pronto para ser compilado. Pense antes de fazê-lo em acrescentar o eventual ícone e a eventual imagem de Inicio. Para permitir ao NSIS de compilar sete script assegure-se que você disponha realmente do plugin Registry.nsh essencial para este template. Abra o NSIS:


Clique em compilador depois em Lançar o MakeNSISW:


Um simples arrastar/soltar do arquivo template na janela do compilador e a compilação se efetua indicando passo a passo os parâmetros acrescentados ao futuro EXE. Verifique cuidadosamente no final da compilação para ter certeza que tudo se passou normalmente, se a compilação não funciona, é aqui que você compreenderá por que.

Agora só falta criar a estrutura de seu aplicativo portátil. Na raiz do diretório você coloca o lançador que acabou de fazer. Você deverá criar dois diretórios App e Data. Dentro do App você coloca o diretório contendo os arquivos da aplicativo que vai se tornar portátil.

O que faz este template mágico comparado ao pequeno pedaço de script AutoIt? No inicio do lançador, ele salva as eventuais chaves do registro, diretórios e arquivos INI que você quer lançar. Em seguida ele lançará seu programa, no final do aplicativo, ele salvará as eventuais mudanças que você gerou na utilização do software portátil. Ele os apagará depois do computador e restaurará os precedentes parâmetros e arquivos.

Prontinho!Espero que este tutorial ajude você a melhorar seus próprios softwares portáteis.

Outros links

Portabilizar uma aplicação com RegRapper
Portabilizar uma aplicação com AutoIt
Portabilizar uma aplicação com ThinApp
Portabilizar une aplicação em Batch

(1) definições de Template

Fonte: http://pon.fr e para uma fonte em português clique aqui

Veja também

Publicado por ninha25. Última modificação: 15 de fevereiro de 2016 às 05:08 por ninha25.
Este documento, intitulado 'Tornar um aplicativo portátil com NSIS', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.