-2

所以,这是我的代码:

Procedure exec;
uses
    ShellApi;
begin
try
ShellExecute( 0, 'Open', 'C:\ParamReport.Txt', nil,nil, SW_NORMAL);
except
ShowMessage('failed');
end;
end;

我正在尝试在 Altium Designer 2013 (13.3) 中执行外部程序(无论类型如何)。

我正在使用的这个程序中有一个基本的编辑器。显然,在所有的脚本文档中,它没有提到它在编辑器中使用的是哪个版本的 DelphiScript。这令人沮丧,因为当我将(工作)代码复制并粘贴到编辑器中并尝试运行它时 - 我遇到了很多错误。

在当前代码中,我收到此错误:“未声明的标识符:SW_NORMAL”

另外,我希望使用“.Split()”命令。然而,这显然需要一个“PChar”——它会抛出这个错误:“Undeclared Identifier: PChar”

我正在运行 Windows 7 Pro 64

请帮忙。谢谢!

* 编辑 *

我已经尝试过“SW_SHOWNORMAL”——这会产生同样的错误。

* 编辑 #2 *

我变了:

ShellExecute( 0, 'Open', 'C:\ParamReport.Txt', nil,nil, SW_NORMAL);

至:

ShellExecute( 0, 'Open', 'C:\ParamReport.Txt', nil,nil, 1);  

通过 Andreas Rejbrand 的推荐,我发现抛出了一个新错误。

“未声明的标识符:ShellExecute”

现在我真的很困惑。

4

3 回答 3

1

我不能代表 Delphiscript,但在 Delphi 中,SW_...常量是在Windows单元中定义的:

uses
  ShellApi, Windows;

检查 Delphiscript 是否有Windows单位。

PChar内置在 Delphi 编译器中,所以如果PChar不在 Delphiscript 中编译,那么可能 Delphiscript 不支持以空字符结尾的字符串,只支持 Delphi 样式的字符串,或者可能有另一个单元可以用来访问PChar.

于 2014-01-08T21:17:58.990 回答
0

看起来 DelphiScript 不支持使用ShellAPI. 在这种情况下,您的代码将永远无法工作。我建议您向 Altium 请求技术支持。

于 2014-01-09T11:59:15.483 回答
0

这对我使用 Delphi XE7 有用

用途

Winapi.Windows,ShellApi,...

于 2021-02-16T05:17:38.913 回答