Delphi 执行应用程序

Dan*_*any 1 delphi delphi-7

我正在尝试使用 delphi 创建一个 dll,我设置了一些文件属性,但随后我想从工作目录运行一个 .exe 文件。我尝试使用此代码运行 exe 文件

ShellExecute(Handle, 'open', 'start.exe', nil, nil, SW_SHOWNORMAL);
Run Code Online (Sandbox Code Playgroud)

但我收到错误:未声明的标识符“句柄”。

未声明的标识符“SW_SHOWNORMAL”

运行 exe 文件的最佳方法是什么?

小智 8

确保将 ShellApi 添加到您的单元的使用子句中。

uses ShellApi;
Run Code Online (Sandbox Code Playgroud)

如果程序没有 Windows 句柄,第一个参数可以是 0。

ShellExecute(0, 'open', ('start.exe'), nil, nil, SW_SHOW);
Run Code Online (Sandbox Code Playgroud)

“句柄”参数未在您的 start.exe 过程中定义

Procedure TForm1.StartEXE;
begin
ShellExecute(0, 'open', ('start.exe'), nil, nil, SW_SHOW);
end;
Run Code Online (Sandbox Code Playgroud)

这将使其可从 TForm1 中的任何其他函数或过程普遍访问。


Dav*_*nan 6

您在问题中描述的错误是:

未声明的标识符“句柄”

只有您知道要传递哪个句柄。将句柄传递给窗体或Application对象的句柄,或者即使0您的应用程序没有要处理的窗口句柄。

未声明的标识符“SW_SHOWNORMAL”

该符号在Windows单位中定义。您只需将该单位添加到您的uses列表中。