Inno Setup: Faça uma instalação profissional para seu programa

Ao se desenvolver um jogo, uma das coisas mais comuns na hora de distribuí-lo em seu site é pegar aquele monte de arquivos e formar um belo e vistoso arquivo ZIP para ser “baixado” na sua página. Até aí tudo bem. Mas você já parou para pensar que isso pode ser um tormento ao jogador? Ou pior, isso pode mostrar certo amadorismo de sua parte?

Tudo bem, eu reconheço: Saber mexer no WinZip, WinRAR ou 7Zip é quase tão essencial quanto saber a usar um “Office-like” para o seu escritório. Mas convenhamos, pode ser uma coisa muito ruim para o jogador que caiu de para-quedas na sua HP e que depois de um dia exaustivo de trabalho, resolveu testar o jogo que você fez. O que ele quer é apenas se divertir e ele pode desistir se ele achar “meio complicado” a descompactação do arquivo, ou ainda, se ele simplesmente por qualquer motivo não conseguir rodar o programa porque determinada biblioteca está sem querer em um lugar errado. Dependendo de suas pretensões, isso pode parecer até mesmo algo não-profissional.

Distribuir jogos e programas diretamente no formato ZIP não é algo simplesmente que nunca ocorreu antes na vida de ninguém. Mas e se distribuíssemos nosso programas de uma forma mais “profissional”? Quer dizer, e se nós fizéssemos uma instalação para o nosso jogo? Não seria melhor? Seria uma ótima forma de você, desenvolvedor de jogos, mostrar seu trabalho da melhor forma possível e causar uma boa impressão.

Existem diversas ferramentas que fazem, e bem, este trabalho. Podemos destacar, entre outros, o Install Shield da Macrovision Software. O Install Shield é um programa já renomado e que é uma referência nesse tipo de aplicação. Mas temos um problema: Ele cu$ta caro. E muito.

Para os nossos propósitos, e muitos de nós estamos apenas começando no desenvolvimento de jogos, programas como o Install Shield são inviáveis pelo preço. Desta forma, optamos por uma ferramenta que esteja ao alcance de todos e que faça o trabalho. Em outras palavras, o prograva deve fazer aquilo que se propõe e ao mesmo tempo, ser acessível financeiramente. No nosso caso, uma ferramenta gratuíta!

De todas as ferramentas que testamos, sem dúvida alguma o programa Inno Setup é o melhor de todos pois, além de ser grátis, ele tem um aspecto bem profissional o que pode solucionar diversos problemas.

Inno Setup - Antigo
Inno Setup: Versão para Windows 3.1
Inno Setup - Versão Nova
Inno Setup – Aspecto da versão 5.1.6, mais atual, compativel com Windows 98, 2000 e XP

Neste breve tutorial, explicaremos como fazer uma instalação com o Inno Setup e como alterar algumas das configurações padrão.

ONDE PEGAR E O QUE FAZER?

O Inno Setup é um programa que gera instalações para seus jogos ou programas. Você pode baixar inteiramente grátis do site do autor o programa, que, ao tempo deste tutorial estava na versão 5.1.6. Ele é desenvolvido pela Jr Software (http://www.jrsoftware.org). Você encontrará também o Inno em diversos sites de download, como o Super Downloads ou Donwload.com.

1. Baixe a versão 5.1.6 (isetup-5.1.6.exe)

2. Rode o programa (isetup-5.1.6.exe)

3. Você verá a seguinte caixa de dialogo:

Inno Setup - Janela de Instalação
Inno Setup – Janela de Instalação

4. Em seguida, você verá os termos de licensa do Software. É aconselhavel a leitura, não só neste, mas em todo software. Na dúvida, lembre-se: “We don´t speak english”, então simplesmente aceite e não esquente a cabeça com essas coisas, pois o programa é grátis e pode ser usado até mesmo para fins comerciais(Isso é um belo resumo da licença). Clique no Botão NEXT.

5. Selecione o diretório onde deseja instalar o Inno.

6. Em seguida, dê o nome que aparecerá no menu do windows (ou no botão Inciar, como queira).

7. Você tem a opção de criar um atalho no desktop para o programa, e asociar as extensões “.iss” ao programa. Recomendamos deixar a instalação padrão, criando o atalho e associando os arquivos.

8. Aparecerá um menu para você confirmar o que foi digitado, tal como diretório onde será instalado o programa e opções adicionais.

9. Espere a cópia dos arquivos e você deverá ver a seguinte mensagem se tudo foi feito com sucesso:

Inno Setup - Instalação feita com sucesso
Inno Setup – Instalação feita com sucesso

Parabéns! Se você chegou até aqui, você conseguiu instalar o Inno Setup sem problemas (O que não é nenhum grande mérito). Vamos agora começar a fazer o nosso script de instalação. Clique “Finish” e execute o programa (ele deverá iniciar automaticamente).

O PRIMEIRO SCRIPT E O SCRIPT WIZARD

Ao executarmos o programa pela primeira vez, nos deparamos com a janela “Welcome”. Essa janela possui duas partes. A primeira oferece a possibilidade de criar um código script, ou partindo do zero, na opção “create a new empty script file” ou a partir do Script Wizard, em “Create a new empty script file with Script Wizard” (É lógico que só poderia ter esse nome nessa opção, né?). A segunda parte é para você abrir arquivos salvos. Existem 3 arquivos de exemplo que você pode abrir a qualquer momento. Recomendo a leitura desses arquivos ao terminar de ler este tutorial.

Para o nosso tutorial, baixe o nosso pacote ZIPADO com o programa e código exemplo para realizar este tutorial. Contém um executável, um ícone, uma licença de uso, uma nota de versão e um FAQ. Pegue o arquivo indo na seção DOWNLOADS da página, na subpasta DOCUMENTOS. (Este documento não está mais disponível: Assim que se tornar disponível um substituto para o arquivo, colocaremos a disposição).

O Script Wizard auxiliará você a preencher um script básico, para qualquer instalação. Não é minha intenção esgotar as possibilidades do programa, mas dar uma idéia de como funciona cada item do script e auxiliá-lo nas principais funções para personalizá-lo (além, é claro, de esperar nunca mais ter uma dor-de-cabeça ao baixar um jogo de alguém e ter aquela bagunça em um arquivo ZIP.. 🙂 e dar uma aparência profissional ao seu programa). Vamos utilizar o Script Wizard:

1. Crie um scripr com o Script Wizard. Após a mensagem do Wizard, clique NEXT.

2. A primeira janela pedirá, respectivamente: Application Name (Nome do Programa), Application name including version (nome do programa e versão), Application publisher (Nome da empresa) e Application Website (Website da empresa). Os dois primeiros ítens são obrigatórios. Os dois ultimos não. Preencha o nome do programa como INNO TEST, o nome e versão como “INNO TEST v1.0”, nome da empresa como “XUTI GAME DEVELOPMENT” e website como “http://www.xuti.net/”. (Lógico que invariavelmente você pode escrever o que desejar. Só tome cuidado para sem querer, não se perder no código depois, ok ?). Clique em “NEXT”.

3. A próxima opção é a escolha do DIRETÓRIO que se vai copiar o programa. O título “Application destination base directory” diz para qual diretório BASE você quer copiar o programa. São duas opções: A primeira e padrão (e eu particularmente recomendo que se deixe assim) do programa é “Program Files Directory”. Em português para o nosso Windows entender: Diretório “Arquivos de Programas”. Nesta opção, o Inno irá instalar no diretório “Arquivos de Programas” do Windows em Português. Normalmente todos os programas se instalam dentro desse diretório e o nosso não deverá ser diferente. Entretanto, podem surgir situações em que você NÃO deseja instalar o programa nesse diretório. Você pode querer criar o diretório “GAMESFROMXUTI”, por exemplo. Neste caso, utiliza-se a segunda opção: “custom”. No espaço que segue, você cria o novo caminho e ele NÃO será instalado no diretório “Arquivos de Programas”.

4. O título “Application directory name” nada mais é que o diretório de destino propriamente dito. No nosso exemplo, onde nós não alteraremos o default que lá está (deve ser algo como “INNO TEST” com espaço, ou algo semelhante, de acordo com o que você digitou) o diretório final deverá ser “C:Arquivos De ProgramasINNO TEST”. Depois da instalação, você pode conferir.

5. Por último ainda, nesta tela, existe uma checkbox permitindo ou não que o usuário mude o diretório padrão. Essa é a opção que, apesar de opcional, SEMPRE DEVE ESTAR ACIONADA. É lógico, ninguém melhor que o próprio usuário para saber onde ele quer instalar o programa. Um último checkbox indica que o programa não precisa de diretório(Eu não consegui imaginar uma utilidade para isso. Deixe-a desativada). Clique “NEXT”.

6. A tela abaixo é uma das mais importantes, e, dependendo do número de arquivos que o seu programa possui, será o lugar onde você gastará a maior parte do tempo fazendo essa instalação. Veja a figura:

Inno Setup - Colocando os arquivos que serão instalados
Inno Setup – Colocando os arquivos que serão instalados

Neste ponto que você irá escolher os arquivos que farão parte de sua distribição, assim como a estrutura de diretórios que fará parte de seu programa. O título “Application main executable file” pede a localização, no seu disco rígido, do arquivo executável. Procure o innotest.exe que estava no pacote que você baixou há pouco e que, provavelmente, você esqueceu de DESCOMPACTAR para executar este tutorial. 🙂

O checkbox que aparece na tela permite que o seu aplicativo inicie logo após a instalação do mesmo ter sido finalizada.

Uma vez colocado o executável, vamos colocar agora todos os arquivos de suporte de seu programa. Veja bem, arquivos de suporte pode ser qualquer coisa. Pode ser uma DLL que deva ser instalada junto com o seu programa, um conjunto de imagens, um conjunto de sons no formato WAV ou MP3, uma página em HTML, ou qualquer outra coisa que você imagine. “Clique” em “Add file(s)” e selecione os arquivos FAQ.txt e clique em “OK”. Repita para os arquivos licença.txt, notas.txt e Console.ico. Selecione na caixa, o arquivo “FAQ.txt”. O Botão “Edit” deverá ficar disponível. Vá em “Edit”.

Nesta janela você poderá otimizar onde cada arquivo que você adicionou a sua instalação deverá ficar. O valor padrão é “Application directory”(diretório padrão do aplicativo), mas você, dependendo do tipo de arquivo, poderá mudar neste mesmo menu, para o diretório default do windows, para o diretório “system32” do windows, caso seja uma DLL, entre outras coisas. No nosso caso, vamos deixar os arquivos no diretório padrão do aplicativo e vamos especificar uma pasta chamada docs dentro do diretório padrão. Para gerar esse diretório, basta colocar “docs” na caixa de texto entitulada “Destination Subdirectory”. Depois de repetir a operação para os outros arquivos. por uma questão prática, mantenha o arquivo “Console.ico” no diretório padrão do aplicativo, clique em “NEXT”.

7. Na próxima tela, estaremos dando uma espécie de ajuste fino na instalação. A primeira coisa que você deve definir é o nome da pasta que aparecerá no menu INICIAR do seu computador. No total, são 6 checkboxes que estarão disponíveis e tem o seguinte significado, de cima para baixo:

  • Permitir que o usuário mude o nome da pasta do menu INICIAR.
  • Permitir que o usuário DESATIVE a criação da pasta no menu INICIAR
  • Criar um atalho de Internet na pasta do programa no menu INICIAR
  • Criar um ícone de DESINSTALAÇÃO na pasta do programa do menu INICIAR
  • Permitir a criação de um ícone no Desktop
  • Permitir a criação de um ícone na Barra de Inicialização Rápida.

Para efeito de aprendizagem, deixe todas as opções acionadas. Em especial, recomendo SEMPRE deixar ativado, em qualquer instalação, a possibilidade de DESINSTALAR o programa. É muito, mas muito chato você instalar um programa, não gostar, e ter que ficar buscando os arquivos para sumir com eles…. :-). Clique em “NEXT”.

8. Estamos quase no final do Wizard. Nesta tela, você vai colocar as informações necessárias para o seu programa poder ser distribuído de forma correta. São 3 arquivos, todos opcionais: “License file” (Arquivo de licença), “Information file shown before instalation” (Arquivo de informações a ser mostrado antes da instalação) e “Information file shown after instalation” (Arquivo de informação a ser mostrado depois da instalação). Basicamente, são arquivos em “.txt” ou mesmo “.htm” que você deverá escrever caso tenha alguma restrição no uso do programa (licença), e informações de ultima hora que devem ser mostradas antes e/ou depois da instalação, como alterações do sistema e outras informações úteis. É importante lembrar que, apesar do arquivo a ser anexado aqui ser um “. txt”, o Inno reconhece endereços de internet começados por “http://”. Então, sinta-se à vontade para colocar endereços de internet na instalação. No nosso caso, coloque o arquivo “licença.txt” no lugar apropriado a licença e “notas.txt” em ambos os campos de informação (Não é um problema isso).

9. Clique “NEXT” e logo em seguida, “FINISH”. O Inno Setup perguntará se você deseja compilar o script nesse momento. Clique sim. Ele pedirá um nome de arquivo para salvar o script. Salve ele no mesmo diretório do nosso PACOTE DE PROGRAMAS. O SCRIPT será compilado. A instalação estará dentro de uma pasta chamada “OUTPUT” neste diretório.

O SCRIPT

Se você fez tudo direito, deverá ter um script parecido com o abaixo (algumas coisas devem estar diferentes, como os diretórios):

[php][Setup]
AppName=INNO TEST
AppVerName=INNO TEST v1.0
AppPublisher=XUTI GAME DEVELOPMENT
AppPublisherURL=http://www.xuti.net/
AppSupportURL=http://www.xuti.net/
AppUpdatesURL=http://www.xuti.net/
DefaultDirName={pf}INNO TEST
DefaultGroupName=INNO TEST
AllowNoIcons=yes
LicenseFile=C:Documents and SettingsBrunoDesktopinno testelicença.txt
InfoBeforeFile=C:Documents and SettingsBrunoDesktopinno testenotas.txt
InfoAfterFile=C:Documents and SettingsBrunoDesktopinno testenotas.txt[/php]

A seção [setup] tem os parâmetros referentes a instalação em si, como o nome do programa, nome de diretório padrão, e links para a página do produtor do programa. Em especial, existem 3 link iguais na instalação padrão: AppPublisherURL, AppSuportURL e AppUpdatesURL. Não me lembro se todas estas opções estão disponíveis sob windows 98/Me, mas sob WindowsXP eles tem diferença. O AppPublisherURL é a página que estará no atalho a ser criado na instalação. O AppSupportURL e AppUpdateURL são, respectivamente, as URL para Suporte do programa e Updates deles. No Windows XP, você pode acessar essa páginas através da janela “Adicionar/Remover programas”.

[php][Tasks]
Name: "desktopicon"; Description: "Create a &desktop icon"; GroupDescription: "Additional icons:"
Name: "quicklaunchicon"; Description: "Create a &Quick Launch icon"; GroupDescription: "Additional icons:"; Flags: unchecked[/php]

A seção [tasks] é onde estão as informações sobre ícones a serem criados na instalação.

[php][Files]
Source: "C:Documents and SettingsBrunoDesktopinno testeinnotest.exe"; DestDir: "{app}"; CopyMode: alwaysoverwrite
Source: "C:Documents and SettingsBrunoDesktopinno testeFAQ.txt"; DestDir: "{app}docs"; CopyMode: alwaysoverwrite
Source: "C:Documents and SettingsBrunoDesktopinno testelicença.txt"; DestDir: "{app}docs"; CopyMode: alwaysoverwrite
Source: "C:Documents and SettingsBrunoDesktopinno testenotas.txt"; DestDir: "{app}docs"; CopyMode: alwaysoverwrite
[/php]

A seção [files] é a relação dos programas que você irá instalar na máquina do usuário. Os diretórios que aqui estão são referentes a *SUA* máquina. A TAG DestDir é o diretório onde os arquivos serão instalados na máquina do usuário.

[php][INI]
Filename: "{app}innotest.url"; Section: "InternetShortcut"; Key: "URL"; String: "http://www.xuti.hpg.com.br"[/php]

A seção [INI] cria o atalho para a página do produtor.

[php]
[Icons]
Name: "{group}INNO SETUP"; Filename: "{app}innotest.exe"
Name: "{group}INNO SETUP on the Web"; Filename: "{app}innotest.url"
Name: "{group}Uninstall INNO SETUP"; Filename: "{uninstallexe}"
Name: "{userdesktop}INNO SETUP"; Filename: "{app}innotest.exe"; Tasks: desktopicon
Name: "{userappdata}MicrosoftInternet ExplorerQuick LaunchINNO SETUP"; Filename: "{app}innotest.exe"; Tasks: quicklaunchicon
[/php]

A seção [Icons] cria a pasta dentro do menu INICIAR do windows.

[php]
[Run]
Filename: "{app}innotest.exe"; Description: "Launch INNO SETUP"; Flags: nowait postinstall skipifsilent[/php]

A seção [Run] cria o atalho para o arquivo executável.

[php][UninstallDelete]
Type: files; Name: "{app}innotest.url"
[/php]

A seção [UnistallDelete] cria o atalho para o programa que fará a desinstalação do programa.

UMA PEQUENA PERSONALIZAÇÃO

Para COMPILAR o script, clique na tecla RUN, na parte de cima do programa (Ela parece uma tecla PLAY de um video cassete). Você poderá instalar o seu programa na sua máquina nesse momento se assim desejar e testar a instalação.

Algumas coisas fiz de propósito. Alguém reparou que o programa não possui ícone, apesar dele estar no diretório?(Ao menos pedi para que vocês o incluísse na instalação…).

O Inno não associa diretamente os ícones e outras coisas ainda precisam ser personalizadas. Esse script é uma forma geral dele, e ele deverá ser modificado. Existem vários comando para isso, bastando separar por ponto-e-vírgula. Alguns deles são:

  • WorkingDir: “{app} (directory)” : Esse comando, colocado no final do arquivo, na seção [Icons], criará o diretório em que o programa/arquivo trabalhará. No nosso script, poeria ser algo como:

Name: “{userdesktop}INNO SETUP”; Filename: “{app}innotest.exe”; Tasks: desktopicon; WorkingDir: “{app}”

Significa que o nosso programa usará, como padrão, o seu próprio diretório. Devo lembrar que isso é especialmente útil se você estiver pensando em distribuir seu programa para computadores com Windows XP. Normalmente, o Inno NÃO faz isso automaticamente no XP e isso pode causar alguns bugs indesejáveis.

  • IconFilename: “{app}(Icon)”: Esse comando irá associar um ícone ao arquivo em questão. Também é usado normalmente na seção [Icons]. No nosso programa, alterando a mesma linha anterior, ficaria(lembre-se que, quando você associar um icone, deverá fazê-lo para cada arquivo manualmente. No exemplo é para ícone do desktop):

Name: “{userdesktop}INNO SETUP”; Filename: “{app}innotest.exe”; Tasks: desktopicon; WorkingDir: “{app}”; IconFilename: “{app}Console.ico”

  • WizardImageFile=myimage.bmp : Na seção [Setup], personaliza a figura no início da instalação. Coloque esse comando no seu script e associe ao arquivo Inno.bmp que está no pacote qu você baixou. O tamanho da figura que você criou pode ter no máximo164x314 de dimensões. Deverá ser no formato BMP.
  • MessagesFile=compiler: (file.isl) : Com esse comando na seção [Setup] você pode personalizar as mensagens da instalação. O default é usar mensagens em inglês. Com o arquivo apropriado NO DIRETÓRIO DO PROGRAMA, você poderá TRADUZIR a sua instalação.

Existem outras opções que você poderá utilizar para personalizar suas instalações. No momento, manterei apenas estas. Consulte o HELP do programa para uma lista completa das funções.

Inno Setup - Seu projeto personalizado
Inno Setup – Seu projeto personalizado