当我使用ShellExecute运行easy-php devserver“ run-devserver.exe”时出现错误

问题描述 投票:0回答:1

如果我在“ run-devserver.exe”文件上单击鼠标,我将在Windows 10 x64上使用easy-php devserver 17,而没有任何问题。

但是在我的新项目中,我想从我的Delphi程序(RAD Studio 10.1 Berlin)中运行easy-php。

我使用此代码:

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

我收到此错误(我认为它是使用MadExcept 3.0创建的::

Aestan尝试菜单:Aestan尝试菜单中发生错误。

此错误为我提供了一些选项,例如错误报告,重新启动应用程序,关闭应用程序!

我在其他类似的文章中使用了一些技巧:

WAMP Server V 2.5 icon is orange,does not respond and no menu

ShellExecute Command doesn't work properly in win10

但是他们没有解决我的问题。

delphi shellexecute easyphp-devserver
1个回答
0
投票

问题已解决。我不知道真正发生了什么,但是它有效!当我使用此代码时,错误出现:“目录名称无效”。

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';

我认为第一代码和第二代码相同,但仅第二代码有效。

© www.soinside.com 2019 - 2024. All rights reserved.