MsgWaitForMultipleObjects, возвращающие отказано в доступе - PullRequest
0 голосов
/ 14 июня 2011

У меня есть следующая функция, которая создает процесс:

function .CreateProcess(aAppletPath: string; var aError : string; aProcessInfo: TProcessInformation): Boolean;
var
  StartInfo: TStartupInfo;
begin
  FillChar(StartInfo, SizeOf(TStartupInfo),#0);
  FillChar(aProcessInfo, SizeOf(TProcessInformation),#0);
  StartInfo.cb := SizeOf(TStartupInfo);
  if False then begin
    StartInfo.dwFlags := STARTF_USESHOWWINDOW;
    StartInfo.wShowWindow := SW_HIDE;
  end;
  if Windows.CreateProcess(nil, PChar(aAppletPath), nil, nil, False, CREATE_NEW_PROCESS_GROUP + NORMAL_PRIORITY_CLASS, nil, nil, StartInfo, aProcessInfo) then begin
    Result := True;
    WaitForInputIdle(aProcessInfo.hProcess, oTimeOutSecs * 1000);
  end
  else begin
    Result := False;
  end;
end;

И у меня есть этот метод, который ждет завершения приложения:всегда возвращая WAIT_FAILED с сообщением Access denied.Что я делаю неправильно?Этот код Delphi 2010, а приложение, которое я вызываю, является Java-приложением.

1 Ответ

3 голосов
/ 15 июня 2011

Неважно, ребята. Это была моя ошибка. Функция:

function .CreateProcess(aAppletPath: string; var aError : string; aProcessInfo: TProcessInformation): Boolean;

должно быть:

function .CreateProcess(aAppletPath: string; var aError : string; var {should be var!!} aProcessInfo: TProcessInformation): Boolean;

Мои извинения.

...