Трудности с 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
Пожалуйста помоги. Спасибо!
* РЕДАКТИРОВАТЬ *
Я уже пытался "SW_SHOWNORMAL" - это выдает ту же ошибку.
* РЕДАКТИРОВАТЬ #2 *
Я изменился:
ShellExecute( 0, 'Open', 'C:\ParamReport.Txt', nil,nil, SW_NORMAL);
чтобы:
ShellExecute( 0, 'Open', 'C:\ParamReport.Txt', nil,nil, 1);
по рекомендации Андреаса Рейбранда, и я обнаружил, что была выдана новая ошибка.
"Необъявленный идентификатор: ShellExecute"
Теперь я в замешательстве.
3 ответа
Это выглядит так, как будто DelphiScript не поддерживает вызовы Windows API с помощью ShellAPI
, В этом случае ваш код не может работать. Я предлагаю вам запросить техническую поддержку у Altium.
Я не могу говорить за Delphiscript, но в Delphi SW_...
константы определены в Windows
единица измерения:
uses
ShellApi, Windows;
Проверьте, есть ли у Delphiscript Windows
Блок.
PChar
встроен в компилятор Delphi, так что если PChar
тогда не компилируется в Delphiscript, возможно, Delphiscript не поддерживает строки символов с нулевым символом в конце, только строки в стиле Delphi, или, возможно, есть другой модуль, который вы можете использовать для доступа PChar
,
Это сработало для меня, используя Delphi XE7
использует
Winapi.Windows, ShellApi, ...