2014-01-08 2 views
-2

Итак, вот мой код:Трудности с ShellExecute() в DelphiScript

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" - который выдает эту ошибку: "необъявленный идентификатор: PChar"

Я бегу Windows 7 Pro 64

Пожалуйста, помогите. Спасибо!

* EDIT *

Я уже пытался "SW_SHOWNORMAL" - это производить ту же ошибку.

* EDIT # 2 *

Я изменил:

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

к:

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

по рекомендации Andreas Rejbrand, и я обнаружил, что новая ошибка была брошена.

"Необъявленная Идентификатор: ShellExecute"

Теперь им действительно путают.

+0

Вы хотели написать 'SW_SHOWNORMAL'. – TLama

+0

@TLama: И 'SW_NORMAL', и' SW_SHOWNORMAL' имеют значение '1'. Но 'SW_SHOWNORMAL' является нормальным (извините за это ...), который нужно использовать. –

+0

Попробуйте '1' вместо константы. –

ответ

0

Это похоже на то, что DelphiScript не поддерживает вызовы API Windows, используя ShellAPI. В этом случае ваш код никогда не сможет работать. Я предлагаю вам запросить техническую поддержку от Altium.

1

Я не могу говорить за DelphiScript, но в Delphi в SW_... константы определены в Windows блоке:

uses 
    ShellApi, Windows; 

Проверьте DelphiScript имеет Windows блок.

PChar встроен в компилятор Delphi, так что если PChar не компилируется в DelphiScript тогда возможно DelphiScript не поддерживает символьные строки нулевого символа в конце только строки Delphi стиля, или, может быть, есть еще один блок можно использовать для доступа к PChar ,

+0

Ах! Я не предполагал, что Delphi и Delphiscript были двумя разными языками ... я буду искать дядюшку Google более кратко ... – ChrisPrattmt

+0

Не повезло, я попробовал ваш совет, и у меня такая же ошибка ... – ChrisPrattmt

+3

Delphi - продукт, созданный Borland и теперь поддерживается Embarcadero. DelphiScript - это язык сценариев, используемый Altium, который использует синтаксис типа Delphi, но на самом деле это не Delphi. Подробнее см. В документации по DelphiScript Altium (http://techdocs.altium.com/display/ADRR/DelphiScript). –

Смежные вопросы