Back
...
- _RU.DELPHI (2:461/256)
------------------------------------------ _RU.DELPHI -
Msg : 82 of 82
From : Dmitriy Goldobin 2:5010/58.25 Sun 27 Oct 96 08:06
To : Dmitry Naghin
Subj : Требуется помощь по Delphi!
--------------------------------------------------------------------------------
Hi, Dmitry!
Wednesday October 23 1996 13:00, Dmitry Naghin wrote to All:
DN> Есть необходимость из
программы на Delphi запустить внешнюю
Dos
DN> программу и дождаться ее
завершения. Только после этого
программа на
DN> Delphi имеет право
DN> продолжать работу. Как
запустить программу - знаю: WinExec(A,0 );
Hо
DN> вот как заставить ждать? Буду
очень признателен за помощь.
Чтобы ждать, нужно пускать через
CreateProcess. Смотри примерчик.
Запускается
через ShowModal, дабы остальные окошки
молчали.
Заодно вопрос к знатокам: как
запускать напрямую без command.com, но
чтобы окно
закрывалось само без подтверждения
? Как вообще задавать дос-сеттинги,
чтобы
например в фуллскрине запустить ?
=== Cut ===
[]
TDOS = class(TForm)
[]
private
DosHandle: THandle;
[]
procedure TDOS.FormActivate(Sender: TObject);
var
StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
begin
FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
with StartupInfo do
begin
cb := SizeOf(TStartupInfo);
dwFlags := STARTF_USESHOWWINDOW;
wShowWindow := SW_HIDE;
end;
if CreateProcess( nil, 'c:\command.com /c c:\fido\fastecho\feutil
pack',
nil, nil, False, NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo,
ProcessInfo )
then
DosHandle := ProcessInfo.hProcess
else
Close;
end;
procedure TDOS.TimerTimer(Sender: TObject);
var
ex: DWord;
begin
GetExitCodeProcess( DosHandle, ex );
if ex <> STILL_ACTIVE then
Close;
end;
procedure TDOS.BtnTermClick(Sender: TObject);
begin
TerminateProcess( DosHandle, 255 );
end;
end.
=== Cut ===
Тот самый Dmitriy.
--- GoldED 2.50.Beta6+
* Origin: А чем бейсик от джойстика
отличается? (2:5010/58.25)
23.01.99 20:00:15