Скрипт для иллюстратор. Иллюстратор виснет при запуске скриптом из под AE

Drawer

Участник
Сообщения
1 843
Реакции
814
просто проверку на запуск Иллюстратора
Не уверен, т.к. AE запустив VBS должен тогда ждать результатов его выполнения, но он этого не делает насколько понимаю. Можно ли организовать обратную связь не в курсе, да и не вижу смысла.
в рабочий скрипт надо передавать входящие данные
Сколько параметров? И кстати, открытие файла в скрипте можно первым поставить, раз уж на нем спотыкается, а проверка завязана на наличие/отсутствие ошибки при выполнении скрипта через COM.
 

Akro

Участник
Топикстартер
Сообщения
480
Реакции
26
Не уверен, т.к. AE запустив VBS должен тогда ждать результатов его выполнения, но он этого не делает насколько понимаю. Можно ли организовать обратную связь не в курсе, да и не вижу смысла.

Сколько параметров? И кстати, открытие файла в скрипте можно первым поставить, раз уж на нем спотыкается, а проверка завязана на наличие/отсутствие ошибки при выполнении скрипта через COM.
Штук 40 параметров надо передать. Или может просто поставить в этом vbs скрипте паузу на подумать, чтобы успел запустится иллюстратор? А есть возможность узнать запущено приложение или нет через скрипт? Чтобы например скрипт проверял запущено приложение или нет. Если не запущено, то запускал Иллюстратор стоял, скажем так условные 10 секунд, а потом отдавал бразды обратно АЕ, которая запустит уже следующих скрипт.
 

Drawer

Участник
Сообщения
1 843
Реакции
814
поставить в этом vbs скрипте паузу на подумать, чтобы успел запустится иллюстратор
AE запустив VBS должен тогда ждать результатов его выполнения, но он этого не делает
скрипт проверял запущено приложение или нет
Скрипт работает в AI как он может то-то проверить, если среда его выполнения еще не загрузилась?:)
апускал Иллюстратор стоял, скажем так условные 10 секунд, а потом отдавал бразды обратно АЕ
В том и проблема, у меня нет AE и я с ним не знаком, можно ли отдать бразды обратно или нет и как я не в курсе 'hz'
 

Akro

Участник
Топикстартер
Сообщения
480
Реакции
26
Скрипт работает в AI как он может то-то проверить, если среда его выполнения еще не загрузилась?:)

В том и проблема, у меня нет AE и я с ним не знаком, можно ли отдать бразды обратно или нет и как я не в курсе 'hz'
Но ведь vbs тот что вы приводили для запуска иллюстратора и затем скрипта работает не из иллюстратора, это же обычный виндовский скрипт. Неужто там нет возможности узнать запущено то или иное преложение?
 

Drawer

Участник
Сообщения
1 843
Реакции
814
Но ведь vbs тот что вы приводили для запуска иллюстратора и затем скрипта работает не из иллюстратора
Да, он как он может сообщить AE что AI запустился? По мне так проще передать ему параметры, а он уже передаст их скрипту JSX
 

eugeny

15 лет на форуме
Сообщения
859
Реакции
210
Ну можно проверить через "костыль".
Первый скрипт запускает AI и создает пустой файл в определенной папке (скриптом AI).
В AE тикет wait, на ожидание файла. Как появился, файл удаляем, нужный скрипт запускаем.
 
  • Спасибо
Реакции: Akro

Akro

Участник
Топикстартер
Сообщения
480
Реакции
26
Да, он как он может сообщить AE что AI запустился? По мне так проще передать ему параметры, а он уже передаст их скрипту JSX
А не надо ей сообщать. Я имел в виду, ч то если скрипт определил, что иллюстратор уже запущен, то скрипт сразу и закончился. А дальше wf в АЕ запустит следующий рабочий скрипт.

Если же скрипт определил, что Иллюстратор еще не запущен, то он запускает скрипт, ждет секунд 15 (время на то чтобы Иллюстратор запустился, ну либо сделать проверку на запуск) и после этого заканчивается. Ну а следом wf уже запускает рабочий скрипт.

Можно просто сделать, чтобы всегда выстаивалась пауза наверное. Но как то уж слишком будет если при каждой попытке нарисовать рельсу он будет по 15 секунд или больше простаивать. Надо чтобы простаивал, только если Иллюстратор не запущен
 

Drawer

Участник
Сообщения
1 843
Реакции
814
Ну можно проверить через "костыль".
Первый скрипт запускает AI и создает пустой файл в определенной папке (скриптом AI).
В AE тикет wait, на ожидание файла. Как появился, файл удаляем, нужный скрипт запускаем.
Ну, если AE так может, то можно :)
А дальше wf в АЕ запустит следующий рабочий скрипт
И как AE поймет что.
скрипт определил, что иллюстратор уже запущен
Разве что как предложили выше, если так можно :)
 

Akro

Участник
Топикстартер
Сообщения
480
Реакции
26
И как AE поймет что.
Ну скрипт это же функция main. Можно в АЕ вернуть false если не запущен или true если запущен. А там уж в зависимости от результата отправить wf по нужному пути. Знать бы еще как проверить запущено приложение или нет.


В общем видать я в птн слегка ошибся в торопях. Не хочет через ActiveX запускать иллюстратор.
Т.е. ни так не запускается.
Function Main(inputs,outputFolder,params)
Dim ErrRunning,AiApp
Set AiApp = CreateObject ("Illustrator.Application")
..
(без функции main просто не работает выдает runtime error)

Ни так не запускается
function main (inputs, outputFolder, params)
{
var fso = new ActiveXObject("Illustrator.Application")
.

Так что по ходу придется использовать отдельный пустой АI-шный скрипт в wf для запуска иллюстратора. И проверять открыт иллюстратор или нет, хотя бы даже вот так:

eugeny сказал(а):
Ну можно проверить через "костыль".
Первый скрипт запускает AI и создает пустой файл в определенной папке (скриптом AI).
В AE тикет wait, на ожидание файла. Как появился, файл удаляем, нужный скрипт запускаем.
 

Drawer

Участник
Сообщения
1 843
Реакции
814

Drawer

Участник
Сообщения
1 843
Реакции
814
Немного почитал про скриптраннер AE. Если не ошибаюсь, он таки может ожидать выполнения скрипта по возврату значения Main. Попробуйте так для запуска/ожидания загрузки AI:
Код:
Function Main(inputs, outputFolder, params)
Set AiApp = CreateObject("Illustrator.Application")
ErrRunning = True
On Error Resume Next
Do While ErrRunning
    Err.Clear
    AiApp.DoJavaScript ("try {var doc=open(new File('null.ai'))} catch(e) {};")
    If Err.Number = 0 Then ErrRunning = False
    WScript.Sleep 1000
Loop
Main = "OK"
'MsgBox Main
End Function
Dim inputs()
Dim outputFolder
Dim params()
Dim ErrRunning,AiApp
Main inputs, outputFolder, params
 
  • Спасибо
Реакции: Akro

Akro

Участник
Топикстартер
Сообщения
480
Реакции
26
Не совсем понял, у Вас получилось мой vbs запустить или нет?
Все было бы хорошо, но он не запускает приложения из скрипта
1683781063320.png

Какой-нибудь "Scripting.FileSystemObject" он запустит. А вот к Иллюстратор нет.
Это ксатти ошибка вот к этому варианту:
Код:
Код:
Function Main(inputs, outputFolder, params)
Set AiApp = CreateObject("Illustrator.Application")
ErrRunning = True
On Error Resume Next
Do While ErrRunning
    Err.Clear
    AiApp.DoJavaScript ("try {var doc=open(new File('null.ai'))} catch(e) {};")
    If Err.Number = 0 Then ErrRunning = False
    WScript.Sleep 1000
Loop
Main = "OK"
'MsgBox Main
End Function
Dim inputs()
Dim outputFolder
Dim params()
Dim ErrRunning,AiApp
Main inputs, outputFolder, params
Я только убрал все что ниже окончания функции
 

Akro

Участник
Топикстартер
Сообщения
480
Реакции
26
В общем просто в скрите что открывает Иллюстратор создаю документ рисую туда какую то фигню и закрываю его. Пока вроде нормально. Судя по всему создавать документ и что то в нем рисовать скрипт не пытается начать раньше чем запустится иллюстратор.