[AI CC2023] Скрипт выполняющий действие Object --- Path --- Clean Up...

  • Автор темы Автор темы ITIT
  • Дата начала Дата начала

ITIT

Топикстартер
15 лет на форуме
Сообщения
516
Реакции
196
Уважаемые господа нужна Ваша помощь.
Для многоходовой Action нужен скрипт выполняющий функцию Object --- Path --- Clean Up... ,НО такой чтобы
не вызывал всплывающего подтверждающего окна,как будто кнопка ОК уже нажата.
Конечно нажать ОК не трудно,но когда это нужно несколько десятков раз,то это отнимает время.
Сразу оговорюсь,что все radio button в подтверждающем окне должны быть задействованы,как по умолчанию.
Возможен ли такой скрипт?
Всем ответившим заранее спасибо.
 
Уважаемые господа нужна Ваша помощь.
Для многоходовой Action нужен скрипт выполняющий функцию Object --- Path --- Clean Up... ,НО такой чтобы
не вызывал всплывающего подтверждающего окна,как будто кнопка ОК уже нажата.
Конечно нажать ОК не трудно,но когда это нужно несколько десятков раз,то это отнимает время.
Сразу оговорюсь,что все radio button в подтверждающем окне должны быть задействованы,как по умолчанию.
Возможен ли такой скрипт?
Всем ответившим заранее спасибо.
Код:
app.executeMenuCommand ('cleanup menu item');
а кнопку ОК нажать автохоткеем, например. Хотя не знаю, может уже скриптами и кнопки жать можно...

либо вот так попробовать

Код:
app.userInteractionLevel=UserInteractionLevel.DONTDISPLAYALERTS;
app.executeMenuCommand ('cleanup menu item');
app.userInteractionLevel=UserInteractionLevel.DISPLAYALERTS;
 
Последнее редактирование:
Мне для обновления данных в голове очень бы хотелось бы увидеть vbs в действии, а, точнее, нажатие кнопочки ок в данном случае. Хотя я и не помню, когда в последний раз использовал vbs в иле.
 
увидеть vbs в действии
Вот так для конкретно такой задачи
все radio button в подтверждающем окне должны быть задействованы
После выполнения скрипта вернутся как было :)
JavaScript:
#target Illustrator
var vbsFile = File("~/send_key.vbs")
vbsFile.encoding = 'UTF-8';
vbsFile.open('w');
var vbsText = 'Dim WshShell\nSet WshShell = WScript.CreateObject("WScript.Shell")\nWScript.Sleep 200\nWshShell.SendKeys("%SUE~{ESC}")'
vbsFile.write(vbsText);
vbsFile.close();
sleep(200)
vbsFile.execute();
app.executeMenuCommand ('cleanup menu item');
var vbsFile = File("~/send_key.vbs")
vbsFile.execute();
app.executeMenuCommand ('cleanup menu item');
sleep(500)
vbsFile.remove();

function sleep(milliseconds) {      
    const date = Date.now();      
    var currentDate = null;      
    do {              
       currentDate = Date.now();    
    } while (currentDate - date < milliseconds);
}
Поскольку фича с UserInteractionLevel в CS6 к примеру не работает и
для обновления данных в голове
товарища qsedftghkа выкладываю.
Есть с этим способом сложности (таймауты и обязательно окно должно быть активно), потому если фича UserInteractionLevel таки работает в вашей версии (интересно с какой она таки стала работать как надо?), то лучше не придумать :)
 
Последнее редактирование:
  • Спасибо
Реакции: ITIT и qsedftghk
Понятненько, ясненько. Туплю на ровном месте. Нового не открыл, но зато старое вспомнил (и мало ли кому пригодится). Старость, она такая. когда долго чем-то не занимаешься, забываешь =)
ЗЫ. UserInteractionLevel должен работать. Никогда с ним особых проблем не было, вроде со времен CS3
 
Последнее редактирование:
ЗЫ. UserInteractionLevel должен работать. Никогда с ним особых проблем не было, вроде со времен CS3
очень интересно :) У меня какой-то другой CS6? :)
Есть откатил систему в вирт. машине до свежеустановленной и сразу после этого установлен CS6. История та же :(
1.gif


Не по теме:
Какого черта движок решил править мою корявую орфографию сам?:)
 
Последнее редактирование:
Ну, что тут сказать? Скриптинг в иле всегда был полон сюрпризов. Видимо в CS6 UserInteractionLevel не во всех местах работал. В новых версиях работает, хотя и не удивлюсь, если с другими какими-то окнами и в новых версиях не сработает.
 
У меня в CS6 тоже не подавляет предупреждение