Главная страница
    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.45 MB
Время: 0.006 c
14-25093
Cobalt
2002-12-21 14:31
2003.01.09
Кто юзает Оперу, подскажите - забыл, где это делается


6-24991
Борис
2002-11-11 13:59
2003.01.09
Помогите передать несколько структур по сети череp Сокеты


1-24899
Vint
2002-12-24 14:44
2003.01.09
ImageList поломался


1-24849
kull
2002-12-25 13:45
2003.01.09
Как добавить свой пункт в меню MSWord?


14-25067
Jackson
2002-12-20 20:59
2003.01.09
Мой зачёт,помогите!!!!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский