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