Главная страница
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.018 c
3-24782
Брат
2002-12-11 11:23
2003.01.09
Хранимая процедура - замена значений null


14-25046
[666]VaaL
2002-12-20 13:41
2003.01.09
Потоки


4-25147
Shuric
2002-11-19 23:04
2003.01.09
Прерывание


14-25062
Kotka
2002-12-19 21:25
2003.01.09
Мне интересно ваше мнение...


4-25149
Diamond Cat
2002-11-19 01:17
2003.01.09
как подменить HDC