[firebase-br] dúvida num code do inno setup
ricardo zancanaro
rbzancanaro em gmail.com
Sex Jan 23 18:12:06 -03 2009
Boa tarde Cassio,
na página http://www.innosetup.com/iskb.php?msi , tem a seguinte dica
de como instalar .MSI.
[Files]
Source: "Your-MSI-File.msi"; DestDir: "{tmp}"
[Run]
Filename: "msiexec.exe"; Parameters: "/i ""{tmp}\Your-MSI-File.msi"""
Em um teste que fiz aqui, o instalador chama o .MSI e fica aguardando
o término da execução do mesmo.
Mas se quiser tentar, tem essa gambiarra aqui, ele cria uma nova
página no seu instalador chama teu .MSI e cria uma barra de progresso
só pra tapear, não testei, mas acredito que tenha como vc trocar o for
por um while e executar a barra até o final da execução do .MSI
var
BarraProgresso: TOutputProgressWizardPage;
PaginaProgresso : TWizardPage;
procedure criarWizard();
var
Paginas: TWizardPage;
begin
PaginaProgresso := CreateOutputMsgMemoPage(wpInfoAfter, 'Título Janela',
'Descrição das ações',
'Ações:',
'Atividade'#13'Atividade');
Paginas := CreateCustomPage(wpFinished, 'wpFinished', 'Descrição do
meu wizard');
end;
procedure InitializeWizard();
begin
criarWizard();
end;
function NextButtonClick(CurPageID: Integer): Boolean;
var
I: Integer;
ErrorCode: Integer;
Path: String;
begin
if CurPageID = PaginaProgresso.ID then begin
BarraProgresso := CreateOutputProgressPage('Iniciar Serviço','');
BarraProgresso.SetText('Iniciando Firebird...', '');
BarraProgresso.SetProgress(0, 0);
BarraProgresso.Show;
try
Path := '"' + ExpandConstant('{tmp}\SeuArquivo.MSI"');
ShellExec('open', Path, '', '', SW_HIDE, ewNoWait, ErrorCode);
for I := 0 to 100 do begin
BarraProgresso.SetProgress(I, 100);
Sleep(100);
end;
finally
BarraProgresso.Hide;
if ErrorCode <> 0 then
MsgBox('Erro ao executar o .MSI.', mbInformation, MB_OK);
Result := True;
end;
end
else
Result := True;
end;
Att,
Ricardo Zancanaro
Mais detalhes sobre a lista de discussão lista