WinExec X ExecuteAndWaitEx
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
Curtidas 0
Respostas
Ipc$
21/09/2005
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;
GOSTEI 0
Alexandre_sbo
21/09/2005
vlw, deu certinho...era isso mesmo que eu precisava.
GOSTEI 0