function ExecuteAndWait(AFileName: string): boolean;
var si: TStartupInfo;
pid: TProcessInformation;
begin
ZeroMemory(@si, SizeOf(si));
si.cb:=SizeOf(si);
Result:=CreateProcess(AFileName, // имя файла
'', // командная строка
nil, // SecurityAttributes для процесса
nil, // SecurityAttributes для главного потока процесса
false, // inherit handles?
0, // flags
nil, // environment
nil, // текущая директория
si,
pid)
if Result then
begin
WaitForSingleObject(pid.hProcess, INFINITE);
CloseHandle(pid.hProcess);
end;
end;
Проблема с консольными приложениями
Здорово, программеры! Есть достаточно серьезная проблема: Я пишу прогу для CD-ripping-а. После того как CDA конвертируется в WAV, а затем с помощью LAME(lame.exe) - WAV в MP3. Но есть BIG-PROBLEM - в WAV кодируются все файлы сразу, т.е lame.exe запускается по несколько раз. Как узнать, когда произошло завершение работы lame.exe для кодирования следующих файлов. Для запуска я использую ShellExecute.
Цитата:
Originally posted by a.k.a Throne
Здорово, программеры! Есть достаточно серьезная проблема: Я пишу прогу для CD-ripping-а. После того как CDA конвертируется в WAV, а затем с помощью LAME(lame.exe) - WAV в MP3. Но есть BIG-PROBLEM - в WAV кодируются все файлы сразу, т.е lame.exe запускается по несколько раз. Как узнать, когда произошло завершение работы lame.exe для кодирования следующих файлов. Для запуска я использую ShellExecute.
Здорово, программеры! Есть достаточно серьезная проблема: Я пишу прогу для CD-ripping-а. После того как CDA конвертируется в WAV, а затем с помощью LAME(lame.exe) - WAV в MP3. Но есть BIG-PROBLEM - в WAV кодируются все файлы сразу, т.е lame.exe запускается по несколько раз. Как узнать, когда произошло завершение работы lame.exe для кодирования следующих файлов. Для запуска я использую ShellExecute.
Необходимо использовать не ShellExecute, а CreateProcess, полученный handle использовать в WaitForSingleObject.
Ты не мог бы по подробнее, а то у меня нет Windows SDK?
Цитата:
Originally posted by a.k.a Throne
Ты не мог бы по подробнее, а то у меня нет Windows SDK?
Ты не мог бы по подробнее, а то у меня нет Windows SDK?
Код: