Доброе время суток!
проблема в следующем
нужно дождаться выполнения ДОСприложения.
есть две процедурки:
// *********************************************
// ОТКРЫВАЕМ ПРОЦЕСС И ЖДЁМ ЗАВЕРШЕНИЯ
// *********************************************
function CreateProcessAndWait(const AppPath, AppParams: String;
Visibility: word): DWord;
var
SI: TStartupInfo;
PI: TProcessInformation;
Proc: THandle;
begin
FillChar(SI, SizeOf(SI), 0);
SI.cb := SizeOf(SI);
SI.wShowWindow := Visibility;
if not CreateProcess(PChar(AppPath), PChar(AppParams), Nil, Nil, False,
Normal_Priority_Class, Nil, Nil, SI, PI) then
ShowMEssage('Failed to execute program '+AppPath);
Proc := PI.hProcess;
CloseHandle(PI.hThread);
if WaitForSingleObject(Proc, Infinite) <> Wait_Failed then
GetExitCodeProcess(Proc, Result);
CloseHandle(Proc);
end;
function WinExecAndWait(Path: String; Visibility: word): DWord;
var
P: integer;
Params: String;
begin
P := Pos(' ', Path); // assume params start at first space
Params := Copy(Path, P, Length(Path));
Delete(Path, P, Length(Path));
Result := CreateProcessAndWait(Path, Params, Visibility);
end;
сам код вызова:
WinExecandwait(PChar(AppPath+'Temp\1.bat'), SW_hide);
РАБОТАЕТ все классно в windows2000,
а в 98 не хочет
кажись не нравится
if WaitForSingleObject(Proc, Infinite) <> Wait_Failed then
GetExitCodeProcess(Proc, Result);
КАК ИОЖНО ИСПРАВИТЬ?
БОЛЬШОЕ СПАСИБО!