aguandando execução de um outro programa.
16/03/2006
0
boa tarde a todos,
bom gostaria que quando a rotina a seguir:
chamar o programa SNCATEF2006 de alguma forma o meu sistema ficasse parado aguardando o fim da execução desse programa ´SNCATEF2006´, alguem tem uma luz, que seja pegando um parametro de retorno do programa chamado ou outra coisa qualquer.
bom gostaria que quando a rotina a seguir:
if (cFormaPgto = ´Cartao Credito´) then begin SetLength(cNumeroCupom, 6); iRetorno := Bematech_FI_NumeroCupom(cNumeroCupom); RetornoECF(iRetorno); comando := ´C:\TEF\SNCATEF2006.exe´ + ´1´ + ´ ´ + NumeroCupom + ´ ´ + cSubtotal; WinExec(Pchar(comando), 0); end;
chamar o programa SNCATEF2006 de alguma forma o meu sistema ficasse parado aguardando o fim da execução desse programa ´SNCATEF2006´, alguem tem uma luz, que seja pegando um parametro de retorno do programa chamado ou outra coisa qualquer.
Tronbr
Curtir tópico
+ 0
Responder
Posts
16/03/2006
Paullsoftware
use essa função...
espero ter ajudado! :wink:
function ExecExterno(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;
espero ter ajudado! :wink:
Responder
Clique aqui para fazer login e interagir na Comunidade :)