Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.09;
Скачать: CL | DM;

Вниз

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

 
ironwit ©   (2002-12-25 18:14) [0]

и подождать пока он отработает.


 
Reindeer Moss Eater   (2002-12-25 18:25) [1]

Из FAR"а никогда ничего не запускал?
Это консольное приложение


 
bugs   (2002-12-25 18:28) [2]

createprocess, waitforsingleobject ?


 
ironwit ©   (2002-12-25 18:30) [3]

2Reindeer Moss Eater
из своей программы написанной на дельфи


 
Reindeer Moss Eater   (2002-12-25 18:36) [4]

2 ironwit ©
Ты намека не понял.
Может ли консольное приложение запускать bat-файлы?
FAR - консольное приложение, которое прекрасно запускает bat файлы и не только их.
Отсюда делаем вывод, что и твоя консольная программа сможет это делать.


 
Юрий Зотов ©   (2002-12-25 20:30) [5]

> ironwit

Консольному приложению тоже доступны все функции API. В том числе, CreateProcess и WaitForSingleObject.


 
ironwit ©   (2002-12-26 09:45) [6]

всем спасибо, вот итоговый код

function EXECAndWAIT(const FileName, Params: ShortString; const WinState: Word): boolean;
var
StartInfo: TStartupInfo;
ProcInfo: TProcessInformation;
begin
{ Put the name of file between quotes, due to spaces in names of files in system Win9x }
FillChar(StartInfo, SizeOf(StartInfo), #0);
with StartInfo do
begin
cb := SizeOf(StartInfo);
dwFlags := STARTF_USESHOWWINDOW;
wShowWindow := WinState;
end;
Result := CreateProcess(nil,pchar(string(Filename+" "+Params)), nil, nil, false,
CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil,
nil,StartInfo,ProcInfo);
{ WAIT the finish of program }
if Result then
begin
WAITForSingleObject(ProcInfo.hProcess, INFINITE);
{ Free the Handles }
CloseHandle(ProcInfo.hProcess);
CloseHandle(ProcInfo.hThread);
end;
end;


 
Юрий Зотов ©   (2002-12-26 09:57) [7]

1. NORMAL_PRIORITY_CLASS - лишнее. По умолчанию то же самое.

2. Я бы немного изменил порядок, так будет получше:

if Result then
begin
CloseHandle(ProcInfo.hThread);
WaitForSingleObject(ProcInfo.hProcess, INFINITE);
CloseHandle(ProcInfo.hProcess);
end;


 
ironwit ©   (2002-12-26 10:00) [8]

10х
попробую



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

Текущий архив: 2003.01.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
14-25007
Djon007
2002-12-18 23:02
2003.01.09
Вопросик по exe?


3-24821
Roki
2002-12-17 09:43
2003.01.09
Преобразование даты!


3-24767
s_o
2002-12-15 14:46
2003.01.09
мультимедия в SQL


6-24995
Kon2002
2002-11-07 19:13
2003.01.09
WinXP


14-25065
Top Gun
2002-12-19 19:55
2003.01.09
Тормоза в Мафии