Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Delphi Console ShellExecuteEX

Автор: Dod
Дата сообщения: 30.07.2003 13:02
Помогите, пожалуйста, чайнику в Delphi.

В консольном приложении посредством ShellExecuteEX
подряд запускаются несколько exe'шек. Но каждая,
кроме первой, должна дождаться завершения предыдущей.

Как это проще всего сделать?
Автор: vserd
Дата сообщения: 31.07.2003 11:28
попробуй передать SHELLEXECUTEINFO.hProcess в WaitForSingleObject. Если не получиться замени ShellexecuteEx на CreateProcess и использовать WaitForSingleObject.

Автор: ironwit
Дата сообщения: 31.07.2003 11:49
попробуй это, у меня работает

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, nil,
nil,StartInfo,ProcInfo);
{ WAIT the finish of program }
if Result then
begin
CloseHandle(ProcInfo.hThread);

WAITForSingleObject(ProcInfo.hProcess, INFINITE);
{ Free the Handles }
CloseHandle(ProcInfo.hProcess);
end;
end;

Страницы: 1

Предыдущая тема: Программа на Kylix


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.