no Torry.net tem estes exemplos:

/{Starts a program and wait until its terminated:
  WindowState is of the SW_xxx constants }
/*function *ExecAndWait(*const *FileName, Params: *string*;
  WindowState: Word): Boolean;
*var
  *SUInfo: TStartupInfo;
  ProcInfo: TProcessInformation;
  CmdLine: *string*;
*begin
  */{ Enclose filename in quotes to take care of
    long filenames with spaces. }
  /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);
  /{ Wait for it to finish. }
  /*if *Result *then
    *WaitForSingleObject(ProcInfo.hProcess, INFINITE);
*end*;



/{ Execute a complete shell command line and waits until terminated. }
/*function *ExecCmdLineAndWait(*const *CmdLine: *string*;
  WindowState: Word): Boolean;
*var
  *SUInfo: TStartupInfo;
  ProcInfo: TProcessInformation;
*begin
  */{ Enclose filename in quotes to take care of
    long filenames with spaces. }
  /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*,
    *nil */{PChar(ExtractFilePath(Filename))}/,
    SUInfo, ProcInfo);
  /{ Wait for it to finish. }
  /*if *Result *then
    *WaitForSingleObject(ProcInfo.hProcess, INFINITE);
*end*;


Flw,
Guidi

fernandoaldrighi escreveu:

> - Preciso ler um arquivo texto
>   que contem "enes" linhas
>   sendo cada linha, um registro a ser gravado em uma tabela do Firebird.
>
>   (até ai tudo bem, sem problemas)
>
>
>
> - Dentro do meu formulario em Delphi
>   chamo um programa executavel em DOS ,que ira gerar o arquivo texto.
>   Estou usando a linha abaixo:
>   winexec('command.com /c e:\cliente\TXTCLI4.exe', sw_shownormal);
>
>   (ate aqui tuido bem, sem problemas)
>
>
> - O problema e´:
>   Como saber que o programa DOS ja acabou de ser executado
>   para o formulario continuar o processo.
>
>
> Ou seja:
> 1- formulario chama um programa DOS
> 2- programa DOS ira ler dados (em Cobol) e gerar um arquivo texto
> 3- formulario deve aguardar que o programa DOS conclua
> 4- para depois poder ler o arquivo texto
> 5- e atualizar minha base de dados em Firebird.
>
>
> Como controlar uma pausa entre a parte 2 e 3 ?
>
>
>
>
>
> - Atraves do formulario, feito em Delphi,
>   que ira ler este arquivo texto
>
>
>
> 
>


-- 
<<<<< 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