Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.09.09;
Скачать: [xml.tar.bz2];

Вниз

Как запустить файл, а потом дождаться его завершения   Найти похожие ветки 

 
Lamer86   (2002-08-27 11:59) [0]

Мне необходимо во время выполнения кода запусть exe. А после заверешния его работы, продолжить выполнение кода. Как это сделать? (у программы нет окна, так что FindWindow не подойдет)


 
Skier   (2002-08-27 12:01) [1]

>Lamer86
FAQ + CreateProcess


 
Слесарь Матерящийся   (2002-08-27 12:04) [2]

WaitForSingleObject(YourNewProcessHandle,INFINITE)


 
Внук   (2002-08-27 12:05) [3]

CreateProcess(...)
CloseHandle(ThreadHandle);
WaitForSingleObject(ProcessHandle);
CloseHandle(ProcessHandle);


 
Tornado   (2002-08-27 13:01) [4]

Пример архивации файла, прога ждет пока процесс не закончится, потом продолжает работу. Удачи


var
si:STARTUPINFO;
pi:PROCESS_INFORMATION;
cmdline, a1, p1:string;

ZeroMemory(@si,sizeof(si));
si.cb:=SizeOf(si);
a1 := ExtractFilePath(Application.ExeName) + "Data\Izm_12.mdb";
p1 := ExtractFilePath(Application.ExeName) + "Backup\archiv";
cmdline:=ExtractFilePath(Application.ExeName) + "arj.exe" + " " + "a" + " " + "-e" + " " + p1 + " " + a1;

if not CreateProcess( nil,
PChar(cmdline),
nil,
nil,
False,
0,
nil,
nil,
si,
pi )
then
begin
Application.MessageBox(Не могу выполнить архивацию!","Ошибка", MB_OK+MB_ICONERROR);
Exit;
end;
WaitForSingleObject( pi.hProcess, INFINITE ); {ждет окнчания процесса архивации, пока не будет закрыто окно DOS}
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );


 
MsGuns   (2002-08-27 14:33) [5]

То же, что и у Tornado, только осн.прога во время ожидания завершения проигрывания mp3, не висит тупо, а продолжает нормально реагировать на мышу и клаву, т.е. просто работает как обычно

procedure TfrmMain.btStartClick(Sender: TObject);
begin
ComLine := "Exec1 "+frmMain.opdlMuz.FileName;
FillChar(si,SizeOf(si),0);
si.cb := SizeOf(si);
First := true;
if CreateProcess(nil,PChar(ComLine),nil,nil,false,
CREATE_DEFAULT_ERROR_MODE,nil,nil,si,pi) then
begin
frmMain.btStart.Enabled := false;
frmMain.btStop.Enabled := true;
While WaitForSingleObject(pi.hProcess,0)=Wait_TimeOut do
Application.ProcessMessages;
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
frmMain.btStart.Enabled := true;
frmMain.btStop.Enabled := false;
end
else
end;


 
MsGuns   (2002-08-27 14:35) [6]

Забыл добавить секцию
var
si: TStartUpInfo;
pi: TProcessInformation;
ComLine: string;



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.09.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.006 c
3-26903
npAKtuk
2002-08-20 07:32
2002.09.09
Импорт в Access из CSV


1-27063
Сайбрекс
2002-08-28 02:40
2002.09.09
Какие возможности Delphi?


8-27123
Серога
2002-05-04 19:50
2002.09.09
DelphiX - (DDraw) вопрос не трудный


14-27202
J_S
2002-08-14 14:04
2002.09.09
SINGLE TONE


7-27244
Tahion
2002-06-30 08:25
2002.09.09
На каие файлы можно устанавливать свойство для иконок %1?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский