Re: czekanie na zamknięcie programu

Autor: fijaksoft <fijaksoft_at_wytnijtobardzoproszeo2.pl>
Data: Mon 21 Aug 2006 - 08:36:30 MET DST
Message-ID: <ecbk9f$r7r$1@news.onet.pl>
Content-Type: text/plain; charset=ISO-8859-2; format=flowed

Marek Wierzbicki napisał(a):
> Mam dziwny problem z systemem. Uruchamiam pod windows server 2000
> program dosowy instrukcją:
>
> CreateProcess(nil, P, nil, nil, FALSE, CREATE_SEPARATE_WOW_VDM or
> NORMAL_PRIORITY_CLASS, nil, D, SI, PI)
>

hmm no wlasnie program dosowy jest w systemi reprezentowany poprzez
ntvdm.exe czy jakos tak sie nazywa, spr czy (bo na pewno) on "wisi"
przez jakis okres czasu, a niekoniecznie jest wykonywane cokolwiek
poprzez twoj soft.

> a następnie czekam na jego zamknięcie procedurą:
>
> function WaitPrg(var PI: TProcessInformation; time: Integer): Boolean;
> var
> endexec: Word;
> wait: Boolean;
> begin
> WaitForInputIdle(PI.hProcess, time);
czy to ci jest potrzbne? nie wiem na ile Inputidle dziala na dosowych
konsolowych softach, moze sprobuj to wyrzucic?

> endexec:=WaitForSingleObject(PI.hProcess, time); //problem

ta linia ci wystarczy, po ci ci wiecej

> WaitForSingleObject(PI.hThread, time);
to jest niepotrzbne

> Wait:=false;
> if endexec=WAIT_TIMEOUT then begin
> TerminateProcess(PI.hProcess, 0);
> Wait:=true;
> end;
> CloseHandle(PI.hProcess);
> CloseHandle(PI.hThread);
> WaitPrg:=wait;
> WriteLog(FormatString(Now)+' koniec')
> end;
>

-- 
(*        www.fijaksoft.prv.pl      *)
(*     Programy, Instalki, Varia    *)
(*  Delphi Pascal Dokumentacje FAQ  *)
{7777772E-6669-6A61-6B73-6F66742E706C}
Received on Mon Aug 21 08:40:10 2006

To archiwum zostało wygenerowane przez hypermail 2.1.8 : Mon 21 Aug 2006 - 08:42:04 MET DST