Clique aqui para voltar à tela inicial da ajuda


FAQ - PMF do Mep Installer
Perguntas mais freqüentes - Frequently Asked Questions

Última atualização: 2005-12-26

Funcionalidade

Problemas

Tarefas da instalação

Como posso instalar...?

Compatibilidade

Variadas

Envie a sua pergunta


Funcionalidade

Traduzindo os textos do programa de instalação

Para traduzir os textos do Mep Installer para outros idiomas, copie o arquivo Default.ini (ou o English.ini, que estão na pasta do Mep Installer) e salve-o com outro nome. Abra-o num editor de textos puro, tal como o Mep Texto ou o Bloco de notas, e edite seguindo o idioma base que você escolheu, apenas alterando as mensagens. Salve-o então com um nome adequado, de preferência com o nome do idioma para o qual foi traduzido. Após isso, ele poderá ser utilizado em diversas instalações.

Para alterar a linguagem do instalador, edite o arquivo de projeto, incluindo na seção [Setup] o seguinte item:

[Setup]
MessagesFile=compiler:MinhaTraducao.ini


Troque, é claro, o nome "compiler:MinhaTradução.ini" pelo nome que você deu ao seu arquivo de idioma, por exemplo, "MessagesFile=C:\teste.ini".

Dica: sempre, ao editar um arquivo de linguagem do Mep Installer, salve-o com outro nome ou em outro local. Os arquivos que são instalados com o Mep Installer serão sobrescritos se você atualizar ou reinstalar o Mep Installer.

O Mep Installer pode ser integrado ao Windows Installer?

Não, e não há uma previsão. O programa precisaria ser reescrito quase que por completo, o que está fora de alcance. Talvez uma outra versão surja, mas provavelmente não será seqüência do Mep Installer.

Como eu posso alterar o ícone do programa de instalação?

O ícone pode ser alterado definindo-se a diretiva SetupIconFile, na seção [Setup]. Ele deverá indicar o caminho completo do ícone, que deve ser um arquivo de extensão .ico. Por exemplo:

[Setup]
SetupIconFile=C:\Meus arquivos\Meu icone.ico

Se você altera o ícone com freqüência, pode definir um ícone padrão para o programa de instalação, para utilizá-lo em todas as compilações. Na tela do compilador, clique em "Ferramentas > Opções do Mep Installer" e clique no botão referente à alteração do ícone. Depois, se eventualmente você quiser utilizar outro ícone, pode utilizar a diretiva SetupIconFile normalmente.

Observação: devido a utilização de determinados recursos do sistema, o ícone do programa de instalação só pode ser alterado se você estiver compilando sob alguma versão de Windows da plataforma NT, ou baseado nesta (como o próprio NT, o 2000 ou o XP, por exemplo). Depois de compilado, o ícone funcionará normalmente em qualquer versão suportada.

Posso fazer uma instalação condicional, por exemplo, apenas instalar se uma determinada chave de registro existir?

Este recurso não está disponível nesta versão. Há um método para instalar diferentes arquivos dependendo da versão de Windows.

É possível executar uma instalação silenciosa sem utilizar os parâmetros /SILENT ou /VERYSILENT?

É possível utilizar a diretiva InstallMode, que pode ter os valores Normal, Silent ou VerySilent, na seção [Setup]. Ela teria o mesmo efeito da linha de comando /SILENT, ou /VERYSILENT, para instalar por exemplo, atualizações do seu programa. Se você quiser uma instalação com menos perguntas ou telas possíveis, utilize as diretivas de desabilitação das páginas na seção [Setup], por exemplo, DisableProgramGroupPage=yes, DisableStartupPrompt=yes. A tela de "Boas vindas" não tem como ser removida ao utilizar o assistente.

O instalador pode utilizar uma entrada do registro ou de um arquivo INI como sendo o nome da pasta de instalação?

Sim, pode e não é difícil. Utilize a constante {reg:...} ou {ini:...}. Veja a seção de constantes. Um exemplo, utilizando uma chave do registro:

[Setup]
DefaultDirName={reg:HKLM\Software\Meu Programa,Path|{pf}\Meu Programa}

Como protejo a instalação com uma senha?

Defina na seção [Setup], a diretiva Password, com a senha desejada. Veja:

[Setup]
Password=123456

A senha é armazenada como texto no arquivo de projeto, porém ela não é armazenada diretamente no programa de instalação compilado. Ela será validada com diferentes métodos, incluindo verificações de CRC, somatórias MD5 e funções internas do módulo SWG.MEP.

Como posso exigir a digitação do nome de usuário e número serial, para evitar a distribuição não autorizada da minha aplicação?

Na versão comercial do Mep Installer, basta definir uma "senha de compilação", através da diretiva Serial, na seção [Setup]. Este recurso não é incluso na versão gratuita, pois o uso de proteção por serial caracteriza-se basicamente como um recurso comercial.

[Setup]
Serial=Teste

Neste caso a senha de compilação é "Teste". Compile o projeto, e depois você poderá registrá-lo selecionando a opção de "Gerar registro" na tela de entrada do Mep Installer, ou através do menu "Ferramentas > Gerar registro...". Você deverá fornecer basicamente duas informações do projeto e duas do usuário. Digite a ID da aplicação (definida em AppId, na seção [Setup]), a senha de compilação, o nome do usuário e a organização. A seguir poderá salvar automaticamente estes dados e passá-los ao usuário. Diferentemente das versões 1.x do Mep Installer, agora você compila o programa de instalação uma única vez, e o serial não é escolhido, mas é gerado com base no sistema interno. Este sistema também inclui validações e somatórias, além de que o serial será verificado em diversos pontos da instalação (não apenas na tela em que é solicitado). Se for encontrado um erro ou uma tentativa de burlar o sistema, o programa de instalação é encerrado imediatamente. Veja aqui a documentação específica sobre o uso da proteção por serial.

Como coloco uma tela de entrada na instalação (splashscreen)

É muito simples. Basta definir a imagem em bitmap na diretiva ImgLogo, na seção [Setup], e determinar o tempo de exibição através de DisplaySplash.

[Setup]
ImgLogo=C:\splash.bmp
DisplaySplash=4500

O uso de DisplaySplash baseia-se em milissegundos, coloque portanto 1000 para um segundo, 2000 para dois segundos, etc. A imagem aparecerá mesmo se você estiver utilizando os modos silenciosos de instalação. Prefira imagens em bitmap de 8 bits (256 cores), por serem mais leves. Imagens de 24 bits ou mais têm uma qualidade visual melhor, mas são maiores em tamanho de arquivo. Note que a imagem utilizada será embutida no executável de instalação. É obrigatória a definição da diretiva DisplaySplash, caso contrário a imagem não aparecerá.


Problemas

O compilador mostra a mensagem "aspas misturadas ou repetidas"

Esta mensagem normalmente é exibida quando você tenta inserir aspas duplas (") em dados de parâmetros, mas as aspas duplas não são requeridas. Veja o item Parâmetros nas seções para maiores informações.

Minha aplicação não abre os arquivos que ela chamaria quando eu abro o atalho do programa criado pelo instalador, mas ela funciona sem problemas se eu abrir diretamente o arquivo .exe. Por quê?

Sua aplicação pode precisar do caminho completo dos arquivos para abri-los. Por padrão, o Mep Installer não cria o campo "Start In/Iniciar em" nos atalhos, e o Windows tentaria abrir os arquivos na pasta local do programa (em algumas versões de Windows, seria a última pasta que o usuário trabalhou com o seu programa). Trabalhar ao redor disso é uma tarefa comum; Você deve especificar o parâmetro "WorkingDir: {app}" nas entradas da seção [Icons].

Mesmo assim, se seu programa faz referência a arquivos que devam estar na mesma pasta dele, utilize caminhos completos, não relativos. Por exemplo, no Delphi ou C++ Builder, a função ExtractFilePath(ParamStr(0)) retornaria o caminho completo do arquivo executável. Neste caso seu programa poderia chamar o arquivo assim:

Memo1.lines.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'seuArq.txt').

Por que aparece a mensagem de erro "The setup files are corrupted" ("Os arquivos de instalação estão corrompidos") em alguns sistemas?

Esta mensagem de erro é exibida quando alguma alteração foi feita nos arquivos da instalação, após a compilação. Se eles não tiverem o mesmo tamanho, CRC e outros dados originais do módulo SWG.MEP "intactos", ela será exibida. Esta mensagem não é mostrada em nenhuma outra situação.

Se os seus usuários reportarem com freqüência esta questão, e seu programa é distribuído pela Internet, é possível que o servidor esteja entregando "partes dos arquivos", talvez com bytes perdidos. Os usuários poderiam verificar o número de bytes antes de instalar, para ter certeza de que o programa esteja inteiro. Algo semelhante pode ocorrer com alguns programas anti-vírus, como os que aplicam "vacinas" nos programas. Note que aí já é de reponsabilidade do usuário final do seu programa, e nada você poderá fazer.

Se sua instalação é feita a partir de disquetes ou CDs, os mesmos podem estar corrompidos (danificados, em especial os disquetes). Estas mensagens poderão vir também se a unidade leitora também pode estar com problemas.

Esta medida, de impedir a execução se o arquivo foi modificado após a compilação, é extremamente necessária por questões de segurança, incluindo em especial as instalações protegidas por número serial.

O programa de instalação mostra a mensagem "Impossível registrar a DLL/OCX de exportação: DllRegisterServer não encontrado"

Esta mensagem aparecerá provavelmente porque você especificou a flag "regserver" em algum arquivo da seção [Files] que não suporta esta flag. Basta removê-la.

Depois de desinstalar, as pastas do meu programa insistem em existir. Por quê?

Há alguns motivos que fazem com que o desinstalador não remova as pastas:

Eu executo um arquivo .bat na seção [Run], mas a janela permanece aberta na tela quando ele termina a execução. Eu gostaria que ele "fechasse ao sair".

De Tim Rude:
O melhor caminho para fazer um arquivo .bat fechar ao sair é utilizar por último o comando cls.

--- arquivo .bat 1 ---

@echo off
echo Ola Mundo!
echo Este arquivo NÃO fechará ao sair

--- arquivo .bat 2 ---

@echo off
echo Ola Mundo!
echo Este arquivo fechará ao sair
cls

Eu alterei a diretiva DefaultDirName no arquivo de projeto, mas ao instalar sempre vem preenchido com a pasta antiga.

Isto não é um erro, é um recurso. Ao iniciar a instalação, o programa de instalação verifica no registro se o mesmo programa já não está instalado, e se estiver, utilizará a pasta que o usuário escolheu na última instalação. Se você desinstalar o programa, e reinstalá-lo novamente, a pasta de instalação será então a definida pela diretiva DefaultDirName. Se você quiser desabilitar este recurso, defina a diretiva UsePreviousAppDir=no na seção [Setup].

Eu tenho duas entradas na seção [Icons] com o mesmo nome, mas somente uma delas é instalada.

Não podem haver dois arquivos no mesmo local com o mesmo nome; os atalhos são arquivos no Windows, e não é possível possuir dois atalhos no mesmo local com o mesmo nome.

Tarefas da instalação

Criando atalhos para sites ou URLs na Internet

Primeiro crie um arquivo chamado, por exemplo, "website.url", num editor de textos puro, tal como o Mep Texto ou o Bloco de notas. Dê a extensão ".url", não .txt. No conteúdo do arquivo, digite o seguinte:

[InternetShortcut]
URL=http://www.meusite.etc/

E depois adicione-o aos arquivos da instalação, criando um atalho para ele:

[Files]
Source: "website.url"; DestDir: "{app}"

[Icons]
Name: "{group}\Visite meu site"; Filename: "{app}\website.url"

Um outro modo, mais prático até, é utilizar a seção [INI], e criá-lo diretamente na instalação:

[INI]
Filename: "{app}\website.url"; Section: "InternetShortcut"; Key: "URL"; String: "
http://www.meusite.etc/"

[Icons]
Name: "{group}\Visite meu site"; Filename: "{app}\website.url"

Criando atalhos na barra Iniciar Rapidamente (QuickLaunch)

Utilize assim:

[Icons]
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Meu Programa"; Filename: "{app}\MeuProg.exe"

Definindo a pasta "Iniciar em/Start In" nos atalhos

Utilize o parâmetro WorkingDir nas entradas da seção [Icons].

Criando associações de arquivos

Primeiro, na seção [Setup] coloque a diretiva "ChangesAssociations" para "yes". Depois crie entradas no registro com a seção [Registry] seguindo o exemplo abaixo.

[Registry]
Root: HKCR; Subkey: ".xxx"; ValueType: string; ValueName: ""; ValueData: "MyProgramFile"; Flags: uninsdeletevalue

".xxx" é a extensão de arquivo que será associada. "MyProgramFile" é o nome interno para o tipo de arquivo, que será referenciado em outros pontos do registro. Utilize um nome único e exclusivo para seu programa e o tipo de arquivo, para não criar conflitos com outras chaves do registro nem com programas já instalados.

Root: HKCR; Subkey: "MyProgramFile"; ValueType: string; ValueName: ""; ValueData: "Arquivos do meu programa"; Flags: uninsdeletekey

"Arquivos do meu programa" é a descrição do tipo de arquivo que será exibida no Windows Explorer, em especial quando o usuário selecionar um arquivo. Por exemplo: "Arquivo de texto do Mep Texto".

Root: HKCR; Subkey: "MyProgramFile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\MYPROG.EXE,0"

"DefaultIcon" é a entrada no registro que determina o ícone padrão a ser exibido para todos os arquivos desse tipo. ",0" indica para o Windows que o ícone a ser exibido será o primeiro ícone do arquivo MYPROG.EXE. (",1" seria o segundo, ",2" o terceiro, e assim por diante.) Você pode utilizar um arquivo .ico, se não tiver outros ícones dentro do seu executável.

Root: HKCR; Subkey: "MyProgramFile\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\MYPROG.EXE"" ""%1"""

"shell\open\command" determina a linha de comando que será executada quando o usuário der um duplo-clique sobre algum arquivo do tipo registrado. Cuidado com as aspas, pois no final esta string deveria ficar assim:

"programa" "%1"

Por exemplo:

"C:\Arquivos de programas\MeuPrograma\MeuPrograma.exe" "%1"

Cabe ao seu programa agora, na inicialização, checar o valor do primeiro parâmetro passado e utilizá-lo para abrir o arquivo.
Por exemplo, no Delphi, coloque no evento onCreate do formulário principal:

if FileExists(PramStr(1)) then
  memo1.lines.loadFromFile(ParamStr(1));

Definindo variáveis de ambiente

No Windows NT/2000/XP, as variáveis de ambiente são gravadas como strings no registro, então podem ser manipuladas pelo Mep Installer através do uso da seção [Registry]. Elas estarão localizadas na chave:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
As variáveis de ambiente específica de usuários estão na chave:
HKEY_CURRENT_USER\Environment
No Windows 95/98/Me, você precisará modificar o arquivo AUTOEXEC.BAT para definir as variáveis de ambiente. O Mep Installer não possui um recurso para tal fim, mas você pode obtê-lo criando um pequeno programa que faça isso e chamando-o pela seção [Run].

Configurando o item "Fechar ao Sair/Close on exit" nos atalhos do MS-DOS

Na seção [Icons], você pode utilizar as flags "closeonexit" e "dontcloseonexit" nas entradas para programas do MS-DOS.

Criando backup antes de substituir os arquivos

O Mep Installer não oferece este recurso diretamente, mas você pode utilizar a cópia dos arquivos locais para outra pasta, antes que sejam substituídos. Utilize na seção [Files]:

Source: "{app}\MyProg.exe"; DestDir: "{app}\backup"; Flags: external skipifsourcedoesntexist uninsneveruninstall

Note que estas linhas deverão estar antes das entradas dos arquivos da sua aplicação, para que sejam processadas antes que ocorra a substituição dos arquivos.

Instalando diferentes arquivos dependendo da versão de Windows

Você pode utilizar os parâmetros MinVersion ou OnlyBelowVersion para trabalhar com isso. Veja a seção da ajuda que fala dos parâmetros comuns.

Aqui está um exemplo de como instalar um arquivo num Windows da plataforma NT (Windows NT/2000/XP) e outro arquivo nas outras versões de Windows (Windows 95/98/Me):

[Files]
Source: "{app}\WinNT2000XP.exe"; DestDir: "{app}"; MinVersion: 0, 1
Source: "{app}\Win9598Me.exe"; DestDir: "{app}"; MinVersion: 1, 0

"0" nunca instala na versão definida; "1" instala em qualquer versão (por exemplo, 1.0 ou superior).

Nota: os parâmetros MinVersion e OnlyBelowVersion podem ser utilizados em diversas outras seções, não somente na [Files]. Por exemplo, nas seções [Registry] ou [INI] para gravar dados ou informações dependendo da versão de Windows, ou na seção [Icons], para criar atalhos diferentes dependendo da versão de Windows.


Como posso instalar...?

Arquivos OCX

Veja um meio recomendável para instalar arquivos OCX (deve estar na mesma linha):

Source: "ComCtl32.ocx"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: restartreplace sharedfile regserver


Compatibilidade

Compatibilidade de sistema operacional

Atualmente o Mep Installer pode ser executado nas versões de Windows a seguir: Windows 95, 98, 2000, XP, 2003, Me, e NT 4.0. Tanto o compilador como os programas de instalação gerados devem funcionar sem problemas.

Compilamos o Mep Installer sob o Windows Server 2003, portanto a compatibilidade com o Windows 2003 é 100% garantida. Quando novos recursos são adicionados, eles são testados inicialmente no Windows 2003, Windows 98, Millennium e XP, e posteriormente no Windows 95 e NT.

O Mep Installer não suporta instalações de 16-bit (como para o Windows 3.11, por exemplo) nem para plataformas de 64-bit. O suporte a plataformas de 64-bit poderá surgir no futuro.

Windows NT/2000/XP e os privilégios administrativos

Uma instalação típica do Mep Installer rodando sob Windows NT, 2000 ou XP não requer privilégios de usuários avançados ou administrativos. Porém, dependendo de algumas ações configuradas pelo instalador, uma conta de usuário restrito não terá os privilégios suficientes para instalar o programa. Os principais casos em que isso acontece serão listados agora.

Coisas que requerem privilégios administrativos no Windows NT/2000/XP:

Coisas que requerem privilégios de usuários avançados ou administrativos no Windows NT/2000/XP:

O Mep Installer não tem restrições para gravar arquivos na pasta do Windows (ou Winnt), nem em outras chaves não mencionadas acima.

O que acontece de diferente quando uma instalação é executada por um usuário sem privilégios administrativos?


Variadas

Há algum limite sobre quantos arquivos podem ser incluídos na instalação?

O Mep Installer não coloca nenhum limite arbitrário sobre a quantidade de arquivos, de entradas no registro, atalhos, etc. Porém, lembre-se de que o Mep Installer precisará de memória para cada entrada no arquivo de projeto. Por exemplo, são necessários aproximadamente 120 bytes de memória para processar cada entrada na seção [Files].

O tamanho total dos arquivos de instalação não pode exceder 2 Gb atualmente, porque não se utiliza um algoritmo aritmético de 64-bit em diversos lugares. Se você tentar utilizar mais de 2 Gb, o indicador de espaço livre e a barra de progresso poderão não trabalhar corretamente. Há planos para trabalharmos em cima disso no futuro.

O que acontece exatamente quando o usuário clica em "Cancelar" durante a instalação?

Quando o usuário clica no botão Cancelar, o Mep Installer irá reverter as alterações de forma um pouco diferente da utilizada na desinstalação. Nisso entra reversões nas alterações no registro, arquivos, etc.

Numa instalação de aplicações grandes, demora muito a compilação e a extração!

Se sua aplicação tem muitos arquivos e será distribuída em CDs, você pode deixar os arquivos em pastas do CD, e instalá-los com a flag external, na seção [Files]. Desta forma o programa de instalação não 'extrai' mas sim 'copia' os arquivos. Utilize a constante {src}, que retorna a pasta do programa de instalação. Se ele estiver na raiz do CD, o caminho da raiz do CD será retornado. Por exemplo:

Source: "{src}\Docs\*"; DestDir: "{app}\Docs"; Flags: external skipifsourcedoesntexist
Source: "{src}\Files\*"; DestDir: "{app}\"; Flags: external skipifsourcedoesntexist

É possível comprimir mais ainda o programa de instalação?

Existe uma ferramenta que comprime bastante, geralmente mais do que a compressão do Mep Installer e de muitos programas que trabalham com o padrão ZIP. Esta ferramenta pode ser acessada no Windows através de uma interface gráfica, clicando no menu "Iniciar > Executar" e digitando "iexpress" (sem aspas). Você escolhe o programa de instalação e o executa, no caso ele será extraído para uma pasta temporária e executado.

Se você vai utilizar um compactador externo, é recomendável colocar o método de compressão para "nenhum", configurando a diretiva Compression=none na seção [Setup]. Dessa forma não se desperdiça mais espaço compactando e recompactando arquivos, deixando a compressão unicamente para o programa externo.

Esse programa que muita gente desconhece, IExpress, já vem com o Windows NT 4.0, Windows 2000, XP ou superior. Infelizmente ele não existe no Windows 95/98/Me, mas você pode utilizar qualquer programa que compacte e gere arquivos auto-extraíveis.

A compressão dos módulos de instalação com ferramentas como o UPX foi amplamente testada, e em alguns casos se mostrava instável. Por esse motivo não recomendamos o uso de um compressor de executáveis.


Subir

Clique aqui para voltar à tela inicial da ajuda