GARANTIR DESCONTO

Fórum Aguardar execução #198512

02/12/2003

0

Tenho um sistema de comunicação remota, e dentro de uma DLL criei uma função que realiza a discagem.

Porem quando chamo esta função dentro da minha aplicação a função me retorna um resultado sem a discagem ser concluida!!!

Isto é, gostaria de algo para aguardar o termino do processo de discagem para depois enviar o result.


Conto com a colaboração de todos


_||bern||_

_||bern||_

Responder

Posts

03/12/2003

Deus

Bem, eu tenho uma função chamada ExecuteAndWait, que funciona assim:

  function ExecuteAndWait(const CommandLine : string) : cardinal;
  var
      tSI : TStartupInfo;
      tPI : TProcessInformation;
      dwI : DWORD;
   ErrUINT: UINT;
  begin
    Result := ErrUINT;
    FillChar(tSI, sizeof(TStartupInfo), 0);
    tSI.cb := sizeof(TStartupInfo);

    if (CreateProcess(nil, pchar(CommandLine), nil, nil, False, 0, nil, nil, tSI, tPI)) then
    begin
      dwI := WaitForSingleObject(tPI.hProcess, INFINITE);

      if (dwI = WAIT_OBJECT_0) then
        if (GetExitCodeProcess(tPI.hProcess, dwI)) then Result := dwI;

      CloseHandle(tPI.hProcess);
      CloseHandle(tPI.hThread);
    end;
  end;


Com essa função, você manda executar qualquer comando, e ela só termina a função quando o comando for executado. Agora o único problema, talvez, é que o comando não é um comando delphi, mas sim um comando do tipo que você digitaria no ´Run´ do Windows. Não sei se serve, então, mas qualquer coisa é só você modificar a função na sua dll para, ao chamar o comando externo, ele chame usando essa função.

Espero ter ajudado!

Abraços, dEUS


Responder

Gostei + 0

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

Aceitar