Fórum WinExec X ExecuteAndWaitEx #296449
21/09/2005
0
Olá amigos!
Tenho esse código :
ele executa um copy sem mostrar a janela do dos, porém quando dou
winexec meu aplicativo não espera o termino do copy.
então achei na net o seguinte código :
e
esse código faz o que preciso, ow seja, meu aplicativo fica aguardando q o cmd seja finalizado para continuar, porém ele mostra a janela do cmd ? alguém sabe uma maneira de ser implementar esse codigo para q naum se aparece a janela do cmd ?
Tenho esse código :
WinExec(PAnsiChar(´cmd /c copy ´ + simg + ´ ´ + spath), SW_HIDE);
ele executa um copy sem mostrar a janela do dos, porém quando dou
winexec meu aplicativo não espera o termino do copy.
então achei na net o seguinte código :
function ExecuteAndWaitEx(const CommandLine: string): DWord; var tSI : TStartupInfo; tPI : TProcessInformation; ExitCode: DWord; begin FillChar(tSI, sizeof(TStartupInfo), 0); tSI.cb := sizeof(TStartupInfo); if CreateProcess(nil, pchar(CommandLine), nil, nil, False, 0, nil, nil, tSI, tPI) then begin try GetExitCodeProcess(tPI.hProcess, ExitCode); while ExitCode = STILL_ACTIVE do begin Application.ProcessMessages; // Check here if the ´wait´ is cancelled and call exit; GetExitCodeProcess(tPI.hProcess, ExitCode); end; finally CloseHandle(tPI.hProcess); CloseHandle(tPI.hThread); end; end else RaiseLastWin32Error; end;
e
ExecuteAndWaitEx(´cmd /c copy ´ + simg + ´ ´ + spath);
esse código faz o que preciso, ow seja, meu aplicativo fica aguardando q o cmd seja finalizado para continuar, porém ele mostra a janela do cmd ? alguém sabe uma maneira de ser implementar esse codigo para q naum se aparece a janela do cmd ?
Alexandre_sbo
Curtir tópico
+ 0
Responder
Posts
21/09/2005
Ipc$
uses ShellApi;
var SHE:SHELLEXECUTEINFO; begin FillChar(SHE, SizeOf(SHE), 0); SHE.cbSize := SizeOf(SHE); SHE.fMask := See_Mask_NoCloseProcess; SHE.Wnd := Handle; SHE.lpVerb := ´Open´; SHE.lpFile := ´cmd´; SHE.lpParameters := PChar(´/c copy ...´); SHE.nShow := SW_Hide; ShellExecuteEx(@SHE); WaitForSingleObject(SHE.hProcess, Infinite); end;
Responder
Gostei + 0
22/09/2005
Alexandre_sbo
vlw, deu certinho...era isso mesmo que eu precisava.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)