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

Вниз

можно ли запустить 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
1-24911
Alexsys
2002-12-25 07:47
2003.01.09
Калькулятор для выражений с функциями и переменными???


4-25156
rybochkin
2002-11-20 20:41
2003.01.09
Чужое окно


4-25134
vvs2002
2002-11-21 05:21
2003.01.09
Разлочить Button?????


14-25009
MegaVolt
2002-12-09 16:45
2003.01.09
---|Ветка была без названия|---


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