Я пытаюсь запустить внешнее приложение с повышенным статусом и дождаться его завершения, прежде чем продолжить:
var
FProcess: THandle;
ExecInfo: TShellExecuteInfo;
begin
FillChar(ExecInfo, SizeOf(ExecInfo), 0);
with ExecInfo do
begin
cbSize := SizeOf(ExecInfo);
fMask := 0;
Wnd := AWindow;
lpVerb := 'runas';
lpFile := PChar(APath);
lpParameters := PChar(AParams);
lpDirectory := PChar(AWorkDir);
nShow := SW_NORMAL;
end;
Result := ShellExecuteEx(@ExecInfo);
if Wait then
begin
while WaitForSingleObject(ExecInfo.hProcess, INFINITE) <> WAIT_TIMEOUT do
Application.ProcessMessages;
end;
Это запускается, но просто продолжает ждать.Вызывающая программа никогда не продолжается после вызова WaitForSingleObject, даже после выхода из вызываемой программы.
Я пробовал WAIT_OBJECT_0 вместо WAIT_TIMEOUT, но у меня та же проблема.Что я тут не так делаю?