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