Ошибка при запуске easy- php devserver "run-devserver.exe" с ShellExecute - PullRequest
0 голосов
/ 02 марта 2020

Я использую easy- php devserver 17 на Windows 10 x64 без каких-либо проблем, если щелкнуть мышью по файлу "run-devserver.exe".

Но в моем новом проекте Я хочу запустить easy- php из моей программы Delphi (RAD Studio 10.1 Berlin).

Я использую этот код:

ShellExecute(Handle, 'runas', 'c:\Program Files (x86)\EasyPHP-Devserver-17\run-devserver.exe', nil, nil, SW_SHOWNORMAL);

Я получаю эту ошибку (я так думаю создано с помощью MadExcept 3.0):

Меню Aestan Try: В меню Aestan Try произошла ошибка.

Эта ошибка дает мне некоторые параметры, такие как отчет об ошибке, перезапуск приложение, закройте приложение!

В другом посте я использовал несколько советов, таких как:

Значок WAMP Server V 2.5 оранжевый, не отвечает и меню отсутствует

Команда ShellExecute не работает должным образом в win10

, но они не решили мою проблему.

1 Ответ

0 голосов
/ 03 марта 2020

Проблема решена. Когда я использую этот код, появляется сообщение об ошибке: «Имя каталога неверно».

procedure TForm1.Button90Click(Sender: TObject);
var
  FileName, Parameters, Folder: string;
  sei: TShellExecuteInfo;
  Error: DWORD;
  OK: boolean;
begin
   FileName := 'C:\Program Files (x86)\EasyPHP-Devserver-17\run-devserver.exe';
   Parameters := '-lang rus';
   ZeroMemory(@sei, SizeOf(sei));
   sei.cbSize := SizeOf(sei);
   sei.lpFile := PChar(FileName);
   sei.lpParameters := PChar(Parameters);
   sei.lpDirectory := PChar(Folder);
   sei.nShow := SW_SHOWNORMAL;
   OK := ShellExecuteEx(@sei);
   if not OK then
   begin
      Error := GetLastError;
      ShowMessage('Error: ' + IntToStr(Error));
   end;

, но когда я редактирую папку и строку имени файла, как этот код, все в порядке.

Folder := 'C:\Program Files (x86)\EasyPHP-Devserver-17\';
FileName := Folder + 'run-devserver.exe';
...