Tutorial Inno Setup

TUTORIAL INNO SETUP


[Setup] 
(Esta é a sessão do setup. Aqui são definidas todas as diretivas que o setup ou o desinstalador irá utilizar)


AppName=Tutorial Sobre o INNO (Nome de seu aplicativo. Aparece na página de inicialização.)
AppVerName=Tutorial Inno (Nome da versão de seu apliativo. Aparece em adicionar remover programas, no painel de controles)
AppVersion=1 (Versão de seu aplicativo)
DefaultDirName=C:TutorialInno (diretório padrão de instalaçao do seu aplicativo)
OutputDir=Setup (Diretório onde deverá ser criado seu instalador qdo o mesmo for compilado pelo Inno. Em relação ao caminho do arquivo iss)
OutputBaseFilename=Setup (Nome dado ao seu instalador EX: Setup.exe)
AppCopyright=Desenvolvido por vbworld.com.br (direitos do criador)
WindowVisible=False (Se esta diretiva for true, exibe uma janela gradiente ao fundo da instalação. Caso contrário exibe apenas a janela do instalador)
DisableStartupPrompt=True (Se for true , desabilida a pergunta inicial.
Se deseja realmente instalar o aplicativo)
EnableDirDoesntExistWarning=False (Se for true. Qdo o usuário seleciona uma pasta que não existe. O setup pergunta se deseja criar a pasta. Se for false o setup cria a pasta sem
perguntar ao usuário)
DisableDirPage=yes (Se for yes, desabilita a pagina de diretório. Aquela que solicita onde deverá ser instalado o sistema. Se for no, exibe a página de diretórios.)

[Languages]
(Nesta sessão são adicionadas as possíveis linguagens de seus setups. Para obter mais traduções para seus setups. Visite: http://www.jrsoftware.org/files/istrans/) 
name: pt; MessagesFile: compiler:Portugues.isl

Os parâmetros desta sessão são:
name: Identifica um nome para a tradução do seu setup
MessagesFile: Indica o arquivo de tradução do setup. Certifique-se de estar usando o arquivo de tradução da versão corretao ao compilador.
A palavra "compiler" após o parâmetro indica que o arquivo de tradução deve ser procurado no mesmo diretório do compilador. Caso deseje informar outro arquivo de tradução retire a palavra "compiler" e coloque o caminho completo do arquivo de tradução:
name: pt; MessagesFile: C:TraducoesPortugues.isl

Quando se é especificado mais de uma tradução, o setup irá exibir uma caixa de diálogo solicitando a tradução desejada ao usuário.

[Tasks]
(Nesta sessão , pode ser especificado tarefas adicionais ao seu setup. Tais como :
Iniciar um programa ao término do setup, Se o usuário deseja criar um atalho ou não para o programa que está sendo instalado) 
Name: ini_notepad; Description: Iniciar NotePad; Flags: unchecked; GroupDescription: Iniciar

Os parametros para criar uma tarefa são:
Name: Um nome que irá identificar a tarefa. Nós iremos utilizar mais tarde (irei explicar também)
Description: Uma descrição para a sua tarefa.
Flags: os valores podem ser:
unchecked, a tarefa irá aparecer desmarcada na instalação.
checked, a tarefa irá aparecer marcada na instalação
restart, se marcada deverá reinicar o computador
GroupDescription: É o nome do grupo no qual as tarefas aparecem

As tarefas abaixo são exemplos de com fazer para criar os atalhos na área de trabalho e no Quick Launch.
Name: desktopicon; Description: Criar ícone na área de trabalho; GroupDescription: Atalhos
(Esta tarefa irá criar um atalho na área de trabalho) 
Name: quicklaunchicon; Description: Criar ícone de inicialização rápida; Flags: unchecked ; GroupDescription: Atalhos
(E esta irá criar um atalho no Quick Launch) 

 [Files] 
(Nesta sessão , é definido quais os arquivos que deverão ir junto com seu setup. Também é definido se deve ser registrado, se deve ser sobreescrito, se deve verificar se é mais velho que o atual. Entre outras. Isto será explicado mais abaixo quando eu for explicar o parametro FLAGS) 
Source: C:WINNTsystem32otepad.exe; DestDir: {sys}; Flags: overwritereadonly promptifolder

Os parametros de Files são:
Source: Caminho do arquivo a ser copiado. Tambem aceita caminhos relativos (../../meuarquivo.txt)
DestDir: Caminho de destino do arquivo no parametro Source. Aqui neste parametro podem ser informados as constantes de destino. Vou colocar aqui apenas algumas.
(Para maiores detalhes consulte a documentação do Inno Setup)

Constante Propósito 

{sys}

Diretório system do windows (C:WINNTsystem)

{app}

diretório em que a aplicação está sendo instalada

{fonts}

Diretório de Fonts
(C:WINNTFonts)

{pf}

Arquivo de Programas( C:Arquivos de programas)

{cf}

Arquivos Comuns (C:Arquivos de programasArquivos comuns)

{tmp}

Diretório temporário (c:WINNTTemp)

{dao}

diretório do DAO (c:Arquivos de programasArquivos comunsMicrosoft SharedDAO)


Flags: Este é um parametro muito poderoso. E deve ser usado corretamente. Pois nele vc informa qual deverá ser o comportamento do arquivo. Se ele deve ser registrado, se deve ser sobreescrito, se é compartilhado. Bom, vamos aos flags mais utilziados na tabela abaixo.
(Para maiores detalhes consulte a documentação do Inno Setup)

Flag 

Propósito

confirmoverwrite

confirma se deve ser substítuído

deleteafterinstall

Apaga o arquivo após a instalação estar completada

ignoreversion

Ignora a versão do arquivo. Se mais velha ou mais nova

isreadme

Se este arquivo é um arquivo do tipo README. Somente é permitido um único arquivo com esta flag

overwritereadonly

substitui arquivos com marca de somente leitura

promptifolder

Pergunta se for mais antigo

regserver

Registra o arquivo se o mesmo for uma OCX

regtypelib

Registra o arquivo se o mesmo for uma Type Library (.tlb)

uninsremovereadonly

Na desinstalação remove o flag somente leitura antes de excluir o arquivo

onlyifdoesntexist

Só instala qdo o arquivo não existir no mesmo diretório. Isto é bom qdo se deseja que não sobreescreva alguma dll. Como a oleaut32.dll do windows.

 

 

Exemplo de um arquivo OCX
Source: ..WINNTsystem32Popup.ocx; DestDir: {sys}; Flags: regserver promptifolder overwritereadonly
Veja que a flag regserver foi informada. Pois o mesmo deverá ser registrado. Ao ser copiado pelo Setup. Se o mesmo fosse um arquivo TLB deveria ter sido informado regtypelib ao invés de regserver

Na sessão files, também é possível informar os atributos do arquivo, para isso utiliza-se o parâmetro
Attribs e suas respectivas flags readonly hidden system. Ex:

Source: ..WINNTsystem32Popup.ocx; DestDir: {sys}; Attribs: readonly hidden system; Flags: regserver promptifolder overwritereadonly

Lógico que vc pode usar somente as que relamente forem necessárias. Não precisa informar as três. O parâmetro é opcional.

[Icons]
(Nesta sessão cria-se os ícones de atalhos do programa)
Name: {group}Notepad; Filename: {app}otepad.exe; WorkingDir: {app}; IconFilename: {sys}otepad.exe; IconIndex: 0

Name: {group}Desinstalar; Filename: {app}Unins000.exe; WorkingDir: {app}; IconFilename: {app}Unins000.exe; IconIndex: 0
(esta linha pode ser sempre usada, pois o setup sempre irá criar o arquivo de desinstalação. Então é bom vc sempre criar a opção de desinstalar. Se não quiser basta não colocar esta linha em seu script)

Os parâmetros desta sessão são
Name: Nome que deverá ser exibido no menu Inciar. Pode se usar constantes
Filename:Arquivo no qual o atalho se refere
WorkingDir:Diretório de trabalho
IconFilename:Arquivo de ícone do atalho
IconIndex:Índice do ícone dentro do arquivo informado em IconFilename

Dentro desta sessão também é possível usar as tarefas. Lembram-se delas? Onde perguntamos se deseja que seje criado um atalho em Quick Launch ou na área de Trabalho.
Pois bem aí está. Veja o parâmetro Tasks, neste parâmetro está informado o nome que nós demos a tarefa lá em cima.

Se o usuário marcou que queria que fosse criado o atalho, o mesmo seria criado agora.
Repare bem, o nome no parâmetro Tasks deve ser o mesmo informado na sessão [tasks]

(área de trabalho)
Name: {userdesktop}NotePad; Filename: {sys}otepad.exe; Tasks: desktopicon; IconIndex: 0

(Quick Launch)
Name: {userappdata}MicrosoftInternet ExplorerQuick LaunchNotePad; Filename: {sys}otepad.exe; Tasks: quicklaunchicon; WorkingDir: {app}; IconIndex: 0

[Run] 
(Nesta sessão deverá ser informado tudo que deve ser executado após a instalação do sistema.) 
Filename: {sys}otepad.exe; WorkingDir: {app}; Parameters: meu_arquivo.txt; Tasks: ini_notepad; Flags: nowait

Os parametros desta sessão são:
Filename: Arquivo a ser executado. Também pode ser usado constantes ou o caminho completo do arquivo
WorkingDir: Diretório no qual o aplicativo irá trabalhar. Pode ser usado constantes ou o caminho do diretório
Parameters: Parâmetros que deverão ser passados ao executável no momento que o mesmo for chamado. No nosso caso o setup irá iniciar o notepad e passar um parâmetro meu_arquivo.txt
Tasks: Este parâmetro é opcional. Lembra da sessão [tasks].

 Onde nós criamos as opções que o usuário pode marcar. Esta é um exemplo dela. Se estiver marcada o setup irá executar a tarefa. Que no nosso caso será iniciar o notepad
Flags: Aqui são informados como o arquivo será executado. Na tabela abaixo eu mostro as Flags mais comuns
(Para maiores detalhes consulte a documentação do Inno Setup)

Flag Propósito 

nowait

É executado no momento em que é chamado. Não espera o setup terminar.

postinstall

Cria um CheckBox para que o usuário posso marcar. Se deseja que seje executado ou não

shellexec

Utilize esta flag para arquivos que não são autoexecutáveis, por exemplo arquivos de texto

waituntilidle

Aguarda até que o processo termine antes de passar para a próxima linha da sessão RUN

[Registry] 
(Nesta sessão é possível manipular o arquivo de registro do windows. Cuidado para não fazer nenhum besteira) 
Root: HKCU; Subkey: vbworldsite; ValueType: string; ValueName: vbworld; ValueData: http://www.blablabla.com; Flags: createvalueifdoesntexist

Os parâmetros são:

Root: Pode ser:
HKCR (HKEY_CLASSES_ROOT)
HKCU (HKEY_CURRENT_USER)
HKLM (HKEY_LOCAL_MACHINE)
HKU (HKEY_USERS)
HKCC (HKEY_CURRENT_CONFIG)
Subkey: sub chave a ser criada. Pode ser separada por
ValueType: Tipo de dados do valor pode ser:
none
string
expandsz
multisz
dword
binary
ValueName: Descrição do valor. Ex: "Versão"
ValueData: Valor. Ex: 1.0
Flags: Existem várias flags que podem ser informadas aqui. Mas a mais importante é esta createvalueifdoesntexist que diz ao setup para criar a chave se a mesma não existir.

Você achou esse artigo útil?