Форум: "Основная";
Текущий архив: 2003.02.27;
Скачать: [xml.tar.bz2];
Внизкак изнать работает ли еще приложение вызванное exec() Найти похожие ветки
← →
НАА (2003-02-15 13:14) [0]Надо дождаться завершения работы программы вызванной exec() и только после этого позволить пользователю продолжать давить клавиши.
Как сделать?
← →
Романов Р.В. (2003-02-15 14:02) [1]function WinExecAndWait32(FileName:String; Visibility : integer):integer;
var
zAppName:array[0..512] of char;
zCurDir:array[0..255] of char;
WorkDir:String;
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
begin
StrPCopy(zAppName,FileName);
GetDir(0,WorkDir);
StrPCopy(zCurDir,WorkDir);
FillChar(StartupInfo,Sizeof(StartupInfo),#0);
StartupInfo.cb := Sizeof(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := Visibility;
if not CreateProcess(nil,
zAppName, { указатель командной строки }
nil, { указатель на процесс атрибутов безопасности }
nil, { указатель на поток атрибутов безопасности }
false, { флаг родительского обработчика }
CREATE_NEW_CONSOLE or { флаг создания }
NORMAL_PRIORITY_CLASS,
nil, { указатель на новую среду процесса }
nil, { указатель на имя текущей директории }
StartupInfo, { указатель на STARTUPINFO }
ProcessInfo) then Result := -1 { указатель на PROCESS_INF }
else begin
CloseHandle(ProcessInfo.hThread);
WaitforSingleObject(ProcessInfo.hProcess,INFINITE);
GetExitCodeProcess(ProcessInfo.hProcess,DWord(Result));
CloseHandle(ProcessInfo.hProcess);
end;
end;
(c) AlexT1000
Значения параметра Visibility смотри в справке по ShowWindow
← →
Anatoly Podgoretsky (2003-02-15 15:05) [2]НАА (15.02.03 13:14)
Это зависит от реализации функции Exec
← →
НАА (2003-02-17 10:13) [3]Романов Р.В. © (15.02.03 14:02)
Спасибо, работает
Ещё бы система не запоминала клики по кнопкам, и не исполняла бы их после завершения внешней программы, то было бы совсем отлично :))
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.02.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c