Você está na página 1de 16

segunda-feira, 23 de julho de 2012

Tutorial Criar Portable com NSIS

Introduo
A criao de portables com o NSIS se iniciou com o site portableapps que cria estes programas, mas adotaram uma postura legal e conservadora, onde so criados apenas com autorizao dos desenvolvedores. Mas o site composto por varios administradores, e houve um que se mostrou de forma mais arrojada e criou o blog portableappz, onde passou a fazer aquilo que realmente gosta, que o estudo, o teste e a pesquiza em programas diversos, utilizando a tcnica do script com NSIS. E atendendo ao nossos pedidos ele tambm criou um tutorial em ingles e nos deu um script pr-formulado e desde ento temos desenvolvido este trabalho idealizado por ele (no estou autorizado dar nomes) , esse o cara. Agradeo ele por tudo que nos ensinou. Este tutorial tambm tem como base um script, onde vou tentar explicar de uma forma simples e com imagens para facilitar o entendimento. Se voc quer aprender a criar portables com este mtodo, deve estudar este tutorial por varias vezes e fazer testes primeiro com programas pequenos para depois partir para os mais dificultosos, apesar que devo dizer que alguns programas no podem ser portabilizados, por causa da sua complexidade nas chaves ou os muitos drivers e servios que so instalados e exigidos por ele. Baixar: NSIS - Total Uninstall script Ora! nem preciso dizer que voc ter que instalar o NSIS no seu computador assim como os plugins que o script exigir. Para facilitar as coisas eu tenho a pasta do NSIS j com todos os plugins instalados, bastando substitur pela do NSIS que estar em C:\Arquivos de programas. 1- Ento faa j isso. Baixe o NSIS e baixe a pastaNSIS. E depois que fizer a substituio voc deve ir at a pasta C:|Arquivos de programas\NSIS e clique em InstallContextMenu.exe para instalar tambm um Men de contexto. 2- Baixe o Total Uninstall 3- Baixe o Script MeuProgramaPortable 4- Baixe NSIS_Constants ou Aqui descompacte e execute NSIS_Constants.exe para conhecer os caminhos ou as variveis NSIS do seu computador. Quero deixar aqui disponvel um script simples com possibilidade de abrir um Splash para executar na pasta atual, e que pode perfeitamente ser utilizado no ThinApp, Spoom ou WinRar. Para baixa-lo clique aqui . Agora que voc j tem na mo todas as ferramentas necessrias, j pode fazer tambm o

seu, e no se esquea de nos fazer uma visita. Este tutorial fala sobre emulao chaves, pastas e arquivos Se voc no est vendo o tutorial, clique aqui abaixo em Mais informaes para acess-lo Parte 1 - Capturar uma instalao com Total Uninstall 1- Abrir o Totall Uninstall Clicar em Instalar

2- Clique no boto Navegar para indicar o caminho do instalador. Em cima, o nome da fotografia vai aparecer um sugerido, mas pode ser qualquer nome. Depois clique em Seguinte>>. (Neste exemplo eu estou utilizando o Clone DVD 5 ).

3- Aqui ele est scaneando o sistema e vai fotografar o estado antes da instalao. Aguarde

4- Depois da fotografia tirada vai aparecer a prxima tla e voc clique em Seguinte para Instalar o programa no computador.

5- Agora vai abrir o instalador. Voc instala o programa e no final, se for possvel, no execute ele, apenas feche no final da instalao. Chave, serial, etc.. fica pra depois. Ns queremos saber apenas o que ele instala antes de executar ele certo ?

6- Depois disso volte tla do Total Uninstall e clique em Seguinte>> para fazer a captura.

7- Nesta tla ele vai escanear e fazer a captura. Quando terminar voc clica em Fechar para irmos para as pastas.

8- No Totall uninstall Clique em Mudanas e da janla dele mesmo voc pode copiar as pastas. Vamos copiar primeiro a pasta principal de C:\Arquivos de programas. Clique com o direito do mouse sobre a pasta e selecione Copiar

9- Crie uma pasta com o nome principal + Portable. Tipo assim CloneDVDPortable. Aguns scripts s compilam assim. mas o nosso script no tem problema. Pode ser qualquer nome e pode ter espao, sem problema. A minha pasta ficou como CloneDVD Portable. Dentro, crie mais uma chamada App e dentro da App crie mais uma renomeado como

DefaultData. Na pasta App cole a pasta principal. No meu caso la se chama Clonedvd5

10 - Na pasta DefaultData voc vai colocar as pastas e arquivos que devem ser emulados pelo seu programa certo ? Ento voltamos para a janla do Total Uninstall e copiamos a pasta que ele criou em AllUser\Dados de aplicativos. chamada DVDXStudio . Tem uma outra que ele criou em User\Dados de aplicativos chamada Vso, mas ssa de um driver simples que ele instala, mas no necessrio emular esta pasta pois o programa no precisa deste driver. Ento vamos l, copiamos a pasta certa e colamos em DefaultData.

12- Agora vamos aos arquivos, pois no tem mais pasta nenhuma. Ele instalou um arquivo em C:\WINDOWS\system32 chamado sycd5.dll . Ento vamos l e copiamos este arquivo.

13- Pronto a pasta DefaultData est com a pasta e o arquivo que o programa prescisa, mas ainda falta copiar as chaves de registro.

14- Ainda na janla do Total Uninstal selecione Registro na aba Mudanas e clique em cima no Men Ficheiros\Exportar\Alteraes de registro

15- Na prxima tla Clique Ok

16- Salve em qualquer lugar ou provizoriamente na pasta do portable

17- Bom, agora chegou a hora de abrir o progama, colocar serial, aplicar Path ou crack e analizar as novas mudanas feitas no registro e no PC. No meu caso aqui, no tem serial, mas um Path que faz o programa funcionar normalmente. Ento vamos l, importante sabermos o que ele cria, j que a pasta que ele criou na instalao em AllUser\Dados de aplicativos est vazia. Para no perdermos nada, temos que fazer isso pelo Total uninstall. Ento clique em cima no boto Atualizar

18- Desta vez voc vai indicar o caminho do lanador em C:\Arquivos de programas para o programa abrir. No meu caso, o lanador se chama MainApp.EXE . do jeito que est l na pasta do programa. Voc vai fazer isso e clicar em Seguinte>> para continuar da mesma forma que foi feito no inicio. E o programa vai abrir e se tiver, voc coloca o serial e etc.. Depois voc fecha o programa e continua no total Uninstall para a nova captura, igual o j feito anteriormente.

19- Por segurana, eu recomendo criar uma pasta provizria. No meu caso eu criei uma chamada Backup e copiei novamente as pastas que ele criou + a nova chave de registro para verificar a diferena.

20- Aqui no meu programa ele criou um monte de arquivo na pasta de AllUser\Dados de aplicativos e o registro tambm aumentou o tamanho. Se algum programa tiver que colocar serial, normalmente ele estar no registro ou na pasta que ele criou, isso depende do programa. No meu caso aqui, como eu usei o Path no vai alterar nada. Mas o registro vai ser usado no script que vamos usar no prximo passo.

Parte 2 - Preencher e compilar um script para criar um lanador 1- Para esta parte voc teria que baixar o script MeuProgramaPortable e utilizar a pasta sources, que pra ficar mais perto, pode ser copiada na pasta do portable provizriamente, mas no obrigatrio.

2- Na pasta sources voc tem que ter um cone formato .ico com o nome do programa (No meu caso CloneDVD.ico) e se desejar um splash na inicializao deve colocar tambm uma imagem no formato .bmp, tambm com o nome do programa seguido da palavra Splash "sem espao". No meu caso ficou como CloneDVDSplash.

3- Detalhe da imagem que la deve ser envolvida pelo branco, pois o script est configurado assim, para fazer diferente teria que mudar o script, mas no vamos entrar nesta parte agora. Veja o exemplo da imagem aberta para voc ter uma idia da coisa.

4- ===Define constants=== Abra o script MeuProgramaPortable com o bloco de notas mesmo ou notepad++ e no inicio preencha: !define VER se quizer, pode deixar como est 0.0.0.0 !define APPNAME pode colocar o nome que quizer ou nada !define APP Coloque o nome do portable, (mesmo nome do cone e do splash) !define APPEXE Nome do lanador deve igual o da pasta principal do programa !define APPDIR Coloque o caminho da pasta do programa !define APPSWITCH no faz nada

5- ---Define Local Dirs---

Lgo abaixo temos --- Define RegKeys --- mas vamos pular a parte das chaves, porque isso ser depois. Vimos que o programa criou apenas uma pasta em Alluser\Dados de aplicativos, Para funcionar no XP PT, Ingles e Windows 7, 8, Vista devemos adicionar pelo menos 3 caminhos: $%ALLUSERSPROFILE%\DADOSD~1\nome da pasta $%ALLUSERSPROFILE%\APPLIC~1\nome da pasta $%HOMEDRIVE%\ProgramData\nome da pasta ou $%HOMEDRIVE%\PROGRA~1\nome da pasta Recomendao= recomendo primeiramente testar com o comando : $APPDATA\nome da pasta caso no funcionar, ento deve-se especificar o caminho direto (neste caso voc pode especificar os 3 caminhos para garantir que ele funcione no XP PT, ENG e Win 7, 8, Vista EX. (testar com este caminho) !define LOCALDIR1 "$APPDATA\DVDXStudio" !define SUBDIR1 ""Aqui no Faz nada !define PORTABLEDIR1 "$EXEDIR\Data\DVDXStudio" !define DEFAULTPORTABLEDIR1 "$EXEDIR\App\DefaultData\DVDXStudio" EX: (Se no funcionar, testar com os 3 caminhos) !define LOCALDIR1 "$%ALLUSERSPROFILE%\DADOSD~1\DVDXStudio" !define SUBDIR1 ""Aqui no Faz nada !define PORTABLEDIR1 "$EXEDIR\Data\DVDXStudio" !define DEFAULTPORTABLEDIR1 "$EXEDIR\App\DefaultData\DVDXStudio" !define LOCALDIR2 "$%ALLUSERSPROFILE%\APPLIC~1\DVDXStudio" !define SUBDIR2 ""Aqui no Faz nada !define PORTABLEDIR2 "$EXEDIR\Data\DVDXStudio(1)" !define DEFAULTPORTABLEDIR2 "$EXEDIR\App\DefaultData\DVDXStudio" !define LOCALDIR3 "$%HOMEDRIVE%\PROGRA~1\DVDXStudio" !define SUBDIR3 "" !define PORTABLEDIR3 "$EXEDIR\Data\DVDXStudio(2)" !define DEFAULTPORTABLEDIR3 "$EXEDIR\App\DefaultData\DVDXStudio"

6- Pastas de DefaultData A pasta DVDXStudio para W 7, 8, Vista e XP ENG em DefaultData ser s uma normal, mas em Data sero criadas 3 pastas automaticamente, conforme o script. EX. DVDXStudio, DVDXStudio(1), DVDXStudio(2).

Espero que voc tenha entendido isso. 7- ---Define Files --Voltando ao script, lgo abaixo temos a parte da emulao de arquivos.E no nosso caso temos apenas um localizado em est na pasta C:\WINDOWS\system32 !define LOCALFILE1 "$SYSDIR\sycd5.dll" !define PORTABLEFILE1 "$EXEDIR\Data\sycd5.dll" !define DEFAULTPORTABLEFILE1 "$EXEDIR\App\DefaultData\sycd5.dll" Observe que no script esto especificados os caminhos. Se tivesse mais arquivos, teriamos que acrescentar tambm no script , tipo: !define LOCALFILE2..., !define LOCALFILE3.. etc..

8- === Other Actions === Abaixo de Define Files temos : === Best Compression === | === Includes === e === Set basic information === que no se faz nada pois so informaes sobre compresso, plugins, renome e icone do portable . Function Init Aqui voc tem que colocar as chaves de registro, vamos ento preparar a chave e coloca-las aqui. Abrir a chave: Direito do mouse sobre a primeira chave exportada \ editar (pode ser com o bloco de notas). Veja na imagem abaixo que eu vou deixar apenas a parte que o programa precisa.

Ento voc salva, e veja na imagem abaixo que todo o resto foi deletado. e ficou s o bsico. No caso de programas que utilizam serial no registro, deve-se abrir a outra chave e acrescentar apenas a chave que contem o serial key. Na verdade, este programa tambm coloca serial no registro, mas como no meu caso eu usei um Path, isso no ser necessrio. Esta chave servir apenas para abrir o programa e tambm vai capturar tudo o que aumentar apartir dla, deixando o registro sempre limpo com backup do registro na pasta Data (que ser criada automaticamente) ao fechar o aplicativo.

Antes de colocar no script voc ainda tem que converte-la para o formato NSIS. Direito do mouse \ Convert to nsis script . a chave vaificar assim:

Abra a chave j convertida (pode ser com o bloco de notas mesmo) e voc deve editar o novo endereo portable. de $PROGRAMFILES para $EXEDIR\App

Vamos aproveitar e limpar um pouco mais tirando chaves repetidas sem informaes, copiar e colar no script. Depois disso ns temos que copiar a primeira parte da chave at depois de \Softwares\Prog.... pra colar l em cima na parte inicial em --- Define RegKeys ---

9- --- Define RegKeys --Como voc observou na imagem acima copia-se apenas a primeira parte da chave, pois o resto o nsis captura junto com o que voc j colocou l em baixo em === Other Actions === . No meu caso eu tenho apenas duas chaves. Ah! em baixo fica como est, mas em --Define RegKeys --tem que tirar o " (asteristico) e o espao, e colocar \ (barra esquerda), caso contrrio no compila. Veja a imagem abaixo como ficou a parte de cima at aqui:

10- ==== Running ==== Agora vamos continuar l em baixo depois de === Other Actions === temos esta parte que voc s vai mecher se precisar. So, no caso deste script. as quatro partes principais da compilao : Pasta, arquivo, chave e o splash da inicializao. No meu caso, eu no vou fazer nada, pois vou emular tudo. No entanto alguns programas s emulam chaves, outros chaves e pasta , ento s tem que deletar a parte que no vai usar.

11- ==== Actions on Registry Keys ===== Depois de ==== Running ==== temos a parte chamada === Run Application que voc no faz nada. seguir chegamos a parte das chaves que voc s tem que aumentar ou diminuir. simples assim. No meu caso so duas chaves, mas se tiver mais tem que aumentar aqui, certo? Lembrando que a parte Function RestorePortableKeys e Function BackupPortableKeys no meche. Voc s vai aumentar ou diminuir em Function BackupLocalKeys, CreateDirectory "$EXEDIR\Data" e Function RestoreLocalKeys como na imagem abaixo

12- ==== Actions on Folders ===== Aqui refere-se pastas e tambm tem que aumentar ou diminuir. No meu caso eu estou emulando trs 3

13- ====Actions on Files ===== Agora a ltima parte. que trata dos arquivos e o procedimento o mesmo. No meu caso eu s estou emulando 1 arquivo. certo?

Parte 3 - Final : Compilar o script e organizar a pasta do portable e desinstalar o programa. 1- Depois que voc j preencheu o script : direito do mouse sobre MeuProgPortable.nsi \ Compile NSIS script

2- Se voc fez tudo certo, ele vai compilar e vai aparecer a mensagem Finished Sucessfully e voc clica em Close pra fechar o compilador do NSIS.

3- Aps a compilao o lanador j vai aparecer nesta mesma pasta No meu caso ficou como CloneDVDPortable.exe

4- Agora vamos tirar as tranqueiras que esto na primeira pasta (souces, backup, chaves etc..) e colocar o seu lanador compilado na primeira pasta do portable.

5- Est pronto, mas no posso deixar de mencionar que voc deve ir na pasta principal do programa em App\... e deletar arquivos desnecessrios. Se voc no sabe qual deletar, no mecha, no meu caso eu vou deletar o arquivo desinstalador chamado Unins000.exe, Unins000.dat e mais um outro, chamado PcSetup.exe, que o portable no vai precisar. Na verdade, se estes arquivos ficarem, no tem problema, apenas que o portable ficaria um pouco mais pesado.

6- Agora acabou, mas tem uma ultima coisa que voc tem que fazer: Desinstalar o programa por completo com o Total Uninstall. Para isso, basta deixar selecionado o nome da instalao no men Aplicaes Monitoradas e dar um click no boto Desinstalar.

7- Vai abrir uma nova janla, voc clica Desinstalar e aguarde..

8- Agora sim !! s alegria, clicar no lanador do portable e o programa abrir para usar.

_______________________Fim_________________________

Download Atualizado
CloneDVD Portable + Sources utilizado neste tutorial Mediafire CloneDVD Portable.rar (19,6 MB) Mais.me CloneDVD Portable.rar (19,6 MB) Caminhos basicos: C:\Documents and Settings\User = $PROFILE Dados de Aplicativos= $APPDATA Configuraes locais\Dados de aplicativos= $LOCALAPPDATA Configuraes locais\Temp= $TEMP All Users\Dados de aplicativos= XP= $%ALLUSERSPROFILE%\DADOSD~1 XP ENG= $%ALLUSERSPROFILE%\APPLIC~1 Win 7 | 8 | Vista= $%HOMEDRIVE%\ProgramData ou $%HOMEDRIVE%\PROGRA~1 Meus documentos= $DOCUMENTS Meus documentos\Meus vdeos= $VIDEO Meus documentos\Minhas msicas= $MUSIC Meus documentos\Minhas imagens= $PICTURES C:\Arquivos de programas= $PROGRAMFILES C:\Arquivos de programas\Arquivos comuns=$COMMONFILES C:\WINDOWS= $WINDIR C:\WINDOWS\system32= $SYSDIR Desktop= $DESKTOP C:\WINDOWS\Fonts= $FONTS Baixe NSIS_Constants ou Aqui descompacte e execute NSIS_Constants.exe para conhecer os caminhos ou as variveis NSIS do seu computador. Este link tambm est no tpico 4 l no inicio