GARANTIR DESCONTO

Fórum WinExec X ExecuteAndWaitEx #296449

21/09/2005

0

Olá amigos!
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

Alexandre_sbo

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

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar