AppleScript генерирует неизвестную ошибку, которой нет в справочной таблице. - PullRequest
0 голосов
/ 06 мая 2020

Я получаю такую ​​ошибку: test.scpt: script error -41. Не удалось получить текст ошибки из-за ошибки -1700.

Содержимое AppleScript:

tell application "Adobe Photoshop CC 2019"
activate
set js to "#include '/Users/temp_myname/My Application/tmp/Adobe Scripts/script.jsx';" & return
delay 3
do javascript js
end tell

Содержимое сценария JSX:

#target photoshop
var err = "";
app.bringToFront();
app.displayDialogs = DialogModes.ERROR;
var fileRef = new File("/Users/temp_myname/My Application/tmp/10.20.5.18/default_10/Images/889original.jpg");
try{
open(fileRef);
} catch (Error) { err = Error }
;fileRef = null;
var errorFile = new File("/Users/temp_myname/My Application/tmp/Adobe Scripts/psperr.txt");
errorFile.open("w");
errorFile.write(err);
errorFile.close();
errorFile = null;

function runMenuItem(item) {
cTID = function(s) { return app.charIDToTypeID(s); };var desc = new ActionDescriptor();var ref = new ActionReference();ref.putEnumerated( cTID( "Mn  " ), cTID( "MnIt" ), item );desc.putReference( cTID( "null" ), ref );executeAction( cTID( "slct" ), desc, DialogModes.NO );
}

Версия OSX: 10.14.6

Как этот сценарий может генерировать код ошибки -1700? тот же сценарий отлично работает на другом Ma c (с той же конфигурацией).

Что означает -41? Я не могу найти его в справочной таблице:

Номера ошибок и сообщения об ошибках

На этой странице я получил описание кода ошибки -1700:

Обнаружены неверные данные параметров или произошел сбой при выполнении принуждения.

Я проверил права доступа к файлам, сбросил Finder, отключил сканер вирусов, размонтированные тома ... также добавил исполняемые файлы osascript и extendscript в настройки безопасности системы.

Что вы думаете? Как я могу заставить это работать?

BTW. Я запускаю AppleScript из приложения Java, использующего OpenJDK, например:

Runtime rt = Runtime.getRuntime();
Process proc;
String[] process;

process = new String[2];
process[0] = "osascript";
process[1] = "/Users/temp_myname/My Application/tmp/Adobe Scripts/test.scpt";
proc = rt.exec(process);

1 Ответ

0 голосов
/ 07 мая 2020

Это было исправлено. Хитрость заключается в том, чтобы добавить паузу между выполнением двух таких сценариев AppleScripts.

Код ошибки -41 - это код ошибки OSX, который можно найти в MacErrors.h: mFulErr = -41, / память заполнена (открыть) или файл не подходит (загрузить) /

...