Retirado do dicas e truques 2.7
function ExecAndWait(const FileName, Params: string; const WindowState: Word): boolean; var SUInfo: TStartupInfo; ProcInfo: TProcessInformation; CmdLine: string; begin { Coloca o nome do arquivo entre aspas. Isto é necessário devido aos espaços contidos em nomes longos } CmdLine := '"' + Filename + '"' + Params; FillChar(SUInfo, SizeOf(SUInfo), #0); with SUInfo do begin cb := SizeOf(SUInfo); dwFlags := STARTF_USESHOWWINDOW; wShowWindow := WindowState; end; Result := CreateProcess(nil, PChar(CmdLine), nil, nil, false, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, PChar(ExtractFilePath(Filename)), SUInfo, ProcInfo); { Aguarda até ser finalizado } if Result then begin WaitForSingleObject(ProcInfo.hProcess, INFINITE); { Libera os Handles } CloseHandle(ProcInfo.hProcess); CloseHandle(ProcInfo.hThread); end; end; Em 08/02/06, Eduardo Paci Galvão <[EMAIL PROTECTED]> escreveu: > > Olá, > > AO clicar em um botão, é chamado um executável (criado > com o Inno Setup), que instala um programa. > > Eu quero que, SOMENTE DEPOIS QUE este aplicativo > for executado, que continue o processamento. > > Estou fazendo assim, no evento onclick do botão: > > .. > StrPCopy(Parms,'c:\aplicativo.exe'); > ShellExecute(0,'open',Parms,nil,nil,sw_showmaximized); > (quero que exiba esta mensagem abaixo só quando finalizar > o executável) > Showmessage('Executado com sucesso'); > > E agora? Tentei com o Application.ProcessMessages, > mas não deu! > > Saudações, > Eduardo Paci Galvão > Engenheiro Eletricista UFMG 1990 > www.egalvao.com.br > MSN: [EMAIL PROTECTED] > > [As partes desta mensagem que não continham texto foram removidas] > > > > -- > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > > > Links do Yahoo! Grupos > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html