Anteriormente eu falei rapidamente a respeito do Inno Script Studio (ISS), que é a IDE que usaremos para criar nosso instalador. Falei de forma muito básica a respeito da interface da IDE e como ela edita os projetos do Inno Setup, manipulando separadamente cada seção do arquivo de projeto, o qual lembra muito (mas não é) um arquivo .ini. Falei também que cada seção do arquivo de projeto do Inno contém entradas de dados que são manipuláveis por janelas específicas, algumas das quais muito semelhantes entre si. Esse conhecimento será útil posteriormente neste tutorial, mas por ora, a fim de criar o projeto básico (porém funcional) usaremos o wizard que o próprio ISS fornece. Ele montará o esqueleto do projeto que vamos modificar no decorrer deste tutorial.
Os arquivos do programa principal
Na parte anterior eu compartilhei o link para o arquivo inno.rar. Este arquivo compactado contém a estrutura de pastas que usaremos durante o decorrer deste tutorial. Extraia esse arquivo em um local adequado. Ele contém duas pastas "aplicação" e "instalador". Aplicação é a pasta que contém os arquivos do programa a ser instalado. Em nosso caso apenas instalaremos o executável (que está na pasta bin). A pasta "instalador" contém o projeto do nosso instalador e todos os arquivos que este projeto precisará. Durante o desenrolar do tutorial eu indicarei onde salvar cada arquivo.
Os arquivos do PostgreSQL
Eu solicitei que fosse baixado o zip com os arquivos do PostgreSQL. Estes arquivos serão usados posteriormente, não agora, mas eu acho bom que você extraia logo estes arquivos dentro da mesma pasta que contém as pastas "aplicação" e "instalador", por exemplo, se estas duas pastas estão dentro da pasta "C:\Inno", crie uma pasta de nome "pg" dentro desta pasta, de forma que se tenha "C:\Inno\pg", "C:\Inno\aplicação" e "C:\Inno\instalador". Não vou mais falar sobre a extração destes arquivos. Faça isso agora mesmo e evite problemas em partes posteriores deste tutorial. Vou considerar os caminhos tais e quais eu indiquei aqui.
A instalação do QuickStart Pack
Eu não vou cobrir a instalação do QuickStart Pack porque ela é bem direta. Execute a instalação e vá dando "Next" e aceitando todas as opções que lhe forem apresentadas. Ao final, você terá instalado em seu sistema o Inno Setup e o Inno Script Studio, com todos os plugins e ferramentas que vamos precisar.
Criando o projeto básico com o wizard
Sem mais delongas:
Abra o ISS e clique na opção de menu File > New > New Script (Wizard)
A janela inicial do Wizard vai aparecer. Simplesmente pressione Next para exibir a primeira tela útil do wizard, a qual é vista a seguir:
Esta tela solicita algumas informações a saber:
Application name é o nome daquilo que será instalado. Se for um programa apenas, é o nome do programa, se for um conjunto de programas, pode ser o nome deste conjunto.
Application version é a versão daquilo que será instalado. Este campo não tem um formato específico. Você pode usar números de versões com 2 dígitos, como no exemplo, ou 4, ou mesmo incluir algum texto, como por exemplo 1.0 Release 33. Depende de você usar algo que faça sentido, pois o significado deste campo é livre.
Application publisher é o nome do desenvolvedor, no caso, a empresa que desenvolveu o programa sendo instalado ou o nome do grupo de pessoas responsável por ele. Pode ser um site também, é um campo com formato livre, logo, depende de você saber o que colocar neste campo.
Application website é o nome do site onde se encontram mais informações a respeito do programa sendo instalado. Pode ser o site referente ao Application Publisher, caso você não tenha usado um site neste campo.
Clique em Next para exibir a próxima tela do assistente:
Nesta tela definimos o diretório-base de instalação do nosso programa. Todas as instalações feitas com o Inno Setup precisam desta informação, mesmo que, ao instalar, o programa crie diretórios em outras partes do sistema. Apesar de ser possível criar pastas em qualquer lugar, é terminantemente não recomendável criar arquivos e/ou pastas fora da pasta base de um programa sendo instalado, a não ser que isso seja estritamente necessário. Para facilitar o aprendizado resolvi manter este tutorial dirigido a opções simples e diretas, logo, configure Application destination base folder como "(Custom)", e digite na caixa de texto a constante {pf32}.
O Inno Setup possui algumas constantes que representam diretórios padrão do Windows e {pf32} significa "Arquivos de programas de 32 bits". Em outras palvras, em Windows de 32 bits, {pf32} = C:\Arquivos de programas (ou C:\Program Files), já em Windows de 64 bits, {pf32} = C:\Arquivos de programas (x86) (ou C:\Program Files (x86)). Como nosso programa de exemplo é um programa de 32 bits, se faz necessário indicar que seus arquivos fiquem nas pastas adequadas a arquivos de programas de 32 bits. Dê uma olhada na ajuda do Inno Setup, buscando por "constantes" e veja outras constantes que podem ser usadas sempre que se fizer referência a diretórios.
A outra configuração, Application folder name, diz respeito ao nome padrão da pasta do programa sendo instalado. Esta pasta será criada dentro de Application destination base folder, logo, ao se usar este instalador em um Windows de 64 bits, por padrão, caso o usuário não altere o caminho de instalação, o programa será instalado em C:\Arquivos de programas (x86)\ZOISE.
Por falar na possibilidade de alterar o caminho de instalação, a opção Allow user to change the application folder serve exatamente para isso. Mantendo ela marcada, o wizard de instalação vai dar a opção para o usuário escolher uma pasta de instalação qualquer para que o programa seja instalado. Apesar de isso ser um comportamento padrão de qualquer instalador que se preze, dependendo daquilo que está sendo instalado, pode ser interessante desmarcar esta opção de forma que o programa seja instalado sempre na mesma pasta que nós definimos aqui.
Clique em Next para exibir a próxima tela do assistente:
Nesta tela informaremos apenas o executável principal daquilo que estamos instalando na opção Application main executable file. No caso, no nosso exemplo, que é bem simples, existe apenas um programa, logo, ele é o principal executável. Clique no botão "Browse" para selecionar o executável.
Allow user to start the application after Setup has finished, faz aparecer no final da instalação, na tela de conclusão da mesma, uma checkbox que, se marcado, fará o programa instalado ser executado assim que a instalação terminar.
Esta tela permite incluir outros arquivos e pastas, mas não vamos fazer isso agora, porque podemos fazer isso depois que o assistente tiver criado o esqueleto de nosso projeto de instalador. Será um bom motivo para olharmos a tela de adição de arquivos.
Clique em Next para exibir a próxima tela do assistente:
Esta tela tem várias opções. A título de aprendizado, marque todos os checkboxes. Vou dar uma breve explicação sobre as opções desta tela:
Application Start Menu folder name é o nome padrão da pasta que será criada no menu iniciar
Allow user to change the Start Menu folder name, se marcado, faz com que o usuário seja capaz de alterar o nome da pasta que será criada no menu iniciar
Allow user to disable Start Menu folder creation, se marcado, faz com que o usuário seja capaz impedir que a pasta do programa sendo instalado não seja criada no menu iniciar
Create an Internet shortcut in the Start Menu folder, se marcado, e se a pasta do menu iniciar for criada, fará com que um atalho de internet (link) seja criado dentro desta pasta. Este link aponta para o website da aplicação, definido na primeira página deste assistente
Create an Uninstall icon in the Start Menu folder, se marcado e se a pasta do menu iniciar for criada, fará com que um atalho para o desinstalador seja incluído dentro desta pasta. É altamente recomendável que esta opção seja utilizada, pois fornecerá ao usuário um meio prático de desinstalar seu programa e todos os arquivos instalados junto com ele. Se esta opção não for utilizada, o usuário só poderá desinstalar o programa usando o Painel de Controle do Windows
Allow user to create a desktop icon, se marcado, apresentará uma opção para o usuário, que, se marcada durante a instalação, fará com que seja criado um atalho na área de trabalho para o programa sendo instalado
Allow user to create a Quick Launch icon, se marcado, e se a versão do Windows for menor que 6.0 (Windows Vista), apresentará ao usuário uma opção que, se marcada durante a instalação, fará com que seja criado um atalho na barra de inicialização rápida (Quick Launch) para o programa sendo instalado
Clique em Next para exibir a próxima tela do assistente:
Nesta tela você poderá informar 3 arquivos em formato RTF (Richtext Format) que serão exibidos durante a instalação. License file, exibirá o conteúdo de um arquivo de licença e, na tela onde esta licença estiver sendo apresentada, haverá dois botões de rádio e o usuário precisará aceitar a licença para continuar a instalação do programa.
Information file shown before installation, exibirá o conteúdo do arquivo ANTES da instalação continuar, após o usuário aceitar o contrato de licença.
Information file shown after installation, exibirá o conteúdo do arquivo APÓS a instalação terminar, imediatamente antes da última tela do instalador, a tela que contém o botão "Concluir".
Clique em Next para exibir a próxima tela do assistente:
Nesta tela você deve escolher os idiomas disponíveis para o instalador. Ao executar o instalador, uma tela solicitando a escolha do idioma será apresentada e ao escolher o idioma, o instalador será apresentado usando-o. No meu entendimento, esta opção só faz sentido se seu programa for multilinguagem, do contrário você pode escolher apenas um idioma, o idioma no qual seu programa foi desenvolvido. A título de manter este tutorial didático, eu recomendo escolher dois idiomas quaisquer.
Clique em Next para exibir a próxima tela do assistente:
Nesta tela é possível configurar alguns aspectos do instalador sendo gerado. As configurações disponíveis são:
Custom compiler output directory é o diretório onde o instalador (arquivo exe) gerado será salvo após sua compilação.
Compiler output base file name é o nome do instalador final que será gerado. Coloque aqui o nome que quiser, mas não use simplesmente "Setup" como nome do instalador porque o Windows não gosta desse nome e pode prejudicar o funcionamento do instalador.
Custom Setup icon file é o arquivo de ícone usado pelo instalador. Ao usar um ícone personalizado, o executável do instalador terá este ícone.
Setup password é uma senha opcional que você pode definir de forma que pessoas não autorizadas não sejam capazes de instalar o programa.
Use the password to encrypt the application files é uma opção que eu recomendo estar sempre habilitada caso se use uma senha. Com esta opção os arquivos não são salvos de forma plana dentro do instalador, e dessa forma se torna mais difícil realizar uma extração de arquivos a partir do instalador, caso não se tenha a senha.
Clique em Next para exibir a próxima tela do assistente:
Esta tela dá a opção de desativar o ISPP, que é um sistema de diretivas de compilação que pode ser usado dentro do script do Inno, eu recomendo deixar isso habilitado sempre, pois no futuro, em instalações mais elaboradas isso pode ajudar bastante.
Clique em Next para exibir a próxima tela do assistente:
Finalmente a última tela do assistente de criação de projetos. Simplesmente pressione "Finish" para concluir e ao fazer isso, a seguinte caixa de diálogo vai aparecer:
Caso queira, clique em Yes para compilar o script que acabou de ser gerado pelo assistente. Se você clicar em Yes, a seguinte caixa de diálogo vai aparecer:
Nesta caixa de diálogo, pressione Yes para salvar o arquivo em um local adequado. E ao fazer isso a tela do Inno Script Studio ficará acessível e mostrará o script que acabou de ser gerado!
Abrindo o projeto de exemplo...
Como você deve estar usando o arquivo anexado a parte 1 deste tutorial, você não deve precisar executar os passos acima manualmente. Se você os executou, não se preocupe, você fez bem, mas a fim de tornar o tutorial mais homogêneo, abra o arquivo ZOISE.iss no Inno Script Studio. A tela do Inno Script Studio vai apresentar o script tal como na figura abaixo:
Explore o script. Tente identificar dentro dele cada uma das partes explicadas na seção anterior, isso ajuda no entendimento e fixação do que foi feito via assistente. Veja também os itens do Tree View à esquerda da tela de edição, veja cada um deles, pois alguns tem valores que foram preenchidos pelo assistente e você pode dar dois cliques nestes valores para editar pormenores. Falando em edição, não edite nada neste arquivo sem orientação por enquanto, pois vamos utilizá-lo durante todo o tutorial e será necessário que ele se mantenha sempre igual àquilo que estou apresentando de forma escrita.
Executando o instalador pela primeira vez
Antes de executarmos o instalador pela primeira vez, será necessário realizar alguns ajustes no script, pois minha estrutura de diretórios pode ser diferente da sua. Sempre que for necessário baixar os arquivos (a partir da parte 1 deste tutorial) você precisará executar os procedimentos a seguir para ajustar e tornar o script compilável:
Na seção [Setup] do script
Alterar a variável LicenseFile de forma que ela aponte para o arquivo correto, em outras palavras, em LicenseFile=<meu caminho>\inno\instalador\recursos\licença.rtf, substitua <meu caminho> pelo caminho correto;
Alterar a variável InfoBeforeFile de forma que ela aponte para o arquivo correto, em outras palavras, em InfoBeforeFile=<meu caminho>\inno\instalador\recursos\infobefore.rtf, substitua <meu caminho> pelo caminho correto;
Alterar a variável InfoAfterFile de forma que ela aponte para o arquivo correto, em outras palavras, em InfoAfterFile=<meu caminho>\inno\instalador\recursos\infoafter.rtf, substitua <meu caminho> pelo caminho correto;
Alterar a variável OutputDir de forma que ela aponte para o diretório correto, em outras palavras, em OutputDir=<meu caminho>\inno\instalador\bin, substitua <meu caminho> pelo caminho correto;
Alterar a variável SetupIconFile de forma que ela aponte para o arquivo correto, em outras palavras, em SetupIconFile=<meu caminho>\inno\instalador\recursos\favicon.ico, substitua <meu caminho> pelo caminho correto;
Na seção [Files] do script
Alterar o caminho mostrado na variável Source de forma que ela aponte para o arquivo correto, em outras palavras, em Source: "<meu caminho>\inno\aplicação\bin\exe\InstaladoPeloInnoSetup.exe", substitua <meu caminho> pelo caminho correto;
Depois de todo esse trabalho de digitação, quero dizer que existe também a forma visual (por meio de caixas de diálogo) de realizar estes passos, mas eu não expliquei como fazer, pois quero que isso seja sua "lição de casa": explorar todas as opções do menu Project > Setup Options e ver o que é possível fazer com elas.
Após realizar estes procedimentos e certificar-se de que todos os caminhos existem de fato é possível executar o instalador pela primeira vez. Para isso, simplesmente pressione o bom e velho F9. Se tudo correr bem o instalador será iniciado e você poderá instalar seu programa sem qualquer problema. Simplesmente continue o instalador tentando identificar nele todas as opções que foram definidas até concluí-lo. Veja na imagem abaixo que até mesmo os itens do Menu Iniciar foram criados conforme minha vontade durante a instalação:
Bom, por enquanto isso é tudo! Se você executar o programa instalado (ou se você manteve o checkbox "Iniciar Zetta-Omnis Inno Setup Example") você provavelmente receberá um erro, pois nosso programa precisa de um banco de dados PostgreSQL instalado. Nas próximas partes deste tutorial eu vou mostrar como incluir no instalador os arquivos do PostgreSQL de forma externa. Até a próxima!
Página anterior do tutorial atual Primeira página do tutoria altual Próxima página do tutorial atual
Artigo anterior na seção atualPróximo artigo na seção atual
Acesso Rápido
Não digite mais que o necessário...
Escaneie este QRCode em dispositivos móveis para acessar a página atual rapidamente nestes dispositivos
Conteúdo Verificado!
#BULLSHITFREE #CLICKBAITFREE
#MONEYLESS
Este site é amigo do desenvolvedor do mundo real
Gostou do conteúdo?
Se você gostou do conteúdo que está lendo, você pode ajudar a manter este site no ar doando qualquer quantia. Use os botões abaixo para realizar sua doação.
É rápido, fácil e indolor :)
Estatísticas em tempo real
Visite Nosso Patrocinador
Visite Nosso Patrocinador
Marco Tech Blog
Techie Italian Blogging on Delphi and More
Atualizado em Terça, 29 de Novembro de 2022 às 18:47
Delphi With Statements and Local Variables
I was recently discussing against the use of the with statement in Delphi with a customer and I realized that local variables offer a very good way to get rid of with statements
10 Years at Embarcadero
This months marks my tenth anniversary as Delphi Product Manager
New in GetIt: AWS SDK for Delphi and EdgeBrowser Updates
Over the last few days, Embarcadero updated the AWS package and provided a new release of the WebView 2 support in TEdgeBrowser
Delphi 11.2 Patch 1 Released
Yesterday Embarcadero released a patch for Delphi 11.2, worth installing for most users.
Special End of September Offer for Delphi
While I generally don't blog about special company offers, this Delphi offer is worth considering -- and it lasts only until tomorrow
Visite Nosso Patrocinador
The Art of Delphi Programming
Opinions, thoughts and ideas mostly related to Delphi Programming
Atualizado em Terça, 11 de Outubro de 2022 às 06:50
IconLab – A Companion for Set-Eleven
About half a year ago I blogged about the new SVG icon set from GlyphLab. Although it comes with thousands of icons in all flavors, sometimes there is a need for that one combination with a specific overlay that is missing in the set. While there are solutions to use SVG icons directly in an … Continue reading "IconLab – A Companion for Set-Eleven"
ImageLists and High DPI – Part 2
For all of you eagerly waiting for the interesting part of this article – here it is. In case you don’t know what I’m talking about, please read the introductory article first. Let’s recap the essence of what has been dealt with: We need a virtual image list in each form to make use of the … Continue reading "ImageLists and High DPI – Part 2"
ImageLists and High DPI
I think we have to face it: More and more systems are equipped with monitors capable of displaying in higher density and people expect that our apps support these higher resolutions. While not that often, but still significant, we can see multiple monitor systems with mixed density getting their share. With the release of Delphi … Continue reading "ImageLists and High DPI"
Async Tasks in VCL Projects
Sometimes actions inside an application need their time. From retrieving data from REST service or a database to scanning your hard disk for all files containing images, there are a plethora of things that can be time consuming. In case these tasks are executed in the main thread the application will probably become unresponsive and … Continue reading "Async Tasks in VCL Projects"
Delphi VCL Applications with mixed DPI
High DPI display and 4K Monitors are getting more common these days. Supporting higher settings than 96 dpi is already possible with some of the newer Delphi versions. Nevertheless this is still a time and resource consuming task. Not only do you need additional sizes for the icons used in your application, you also have … Continue reading "Delphi VCL Applications with mixed DPI"