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

 


Responder a