молба за помощ

4 отговора 159 прегледа
#1

молба за помощ

Проблема е следният.
От програмата която пиша се пуска DOS приложение, което прави нещо с ражлична дължина на времето (от 10 до 30 сек нормално).

1.Как да разбера че DOS-програмата е свършила своята работа;
2.Има ли начин да накарам програмата ми да чака докато ДОС-а бачка.

Предварително благодаря на всички.

ПП.ДОС-а го викам с ShellExecute

Отговор
в отговор на dalt #2

Re: молба за помощ

Tova sas sazdavaneto na PIF file sum go sreshtal na 2 mesta 1:1.
ne sum go probval, no zvuchi interesno :)
nadqva se da ti svarshi rabota

[линк]

Отговор
в отговор на dalt #3

Re: молба за помощ

Това е дърто, но има интересен замисъл
[линк]
А тука е модерния начин
[линк]

Редактирано от Pechenia на

Отговор
в отговор на dalt #4

Re: молба за помощ

Когато имах подобен проблем си направих
тази процедура. Може би ще ти свърши работа.


uses Windows;
...
procedure StartProgramAndWait(Command,StartInDir:string);
var
SI: TStartupInfo;
PI: TProcessInformation;
begin
ZeroMemory(@SI, SizeOf(SI));
SI.cb := SizeOf(Si);
if CreateProcess(nil, PChar(Command), nil, nil, True, 0, nil,PChar (StartInDir), SI, PI) then
begin
CloseHandle(PI.hThread);
WaitForSingleObject(PI.hProcess, INFINITE);
CloseHandle(PI.hProcess);
end
end;


Например:
StartProgramAndWait('command.com','c:\my_dir');

Отговор
в отговор на dalt #5

Re: молба за помощ

Благодаря на всички за отзивчивостта.
предложението на Печения свърши работа съвсем леко редактирано :)
Ако има желаещи ще постна резултата.

10х още веднъж

Отговор