[ID CC2024] Задать Shortcut Стилю через скрипт.

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

iGrey

Топикстартер
12 лет на форуме
Сообщения
136
Реакции
12
Приветствую!
Подскажите пожалуйста, можно ли задать shortcut объектному стилю через скрипт?
1723220514885.png


Искал в мануале. Не нашел.
Может нет, а может скрыто на глубинных слоях знания.
 
Но в скрипте было бы удобнее.
Насколько помню, такой возможности нет. Для подобной задачи давно делал комбинацию скрипта и сниппета, который содержит все нудные стили. Код сниппета распаковывался прямо из скрипта в файл, затем сниппет импортировался в документ.
 
  • Спасибо
Реакции: iGrey
Тоже интересна эта тема. Прямого решения не нашла.

Но как-то же он это сделал 'hmmm'
 
JavaScript:
// Назначение сочетания клавиш объектному стилю
app.doScript(main, ScriptLanguage.JAVASCRIPT, undefined, UndoModes.ENTIRE_SCRIPT, "Назначить сочетание клавиш объектному стилю");

function main() {
    if (app.documents.length === 0) {
        alert("Ошибка: Нет открытых документов. Пожалуйста, откройте документ и попробуйте снова.");
        return;
    }

    // Имя объектного стиля, которому нужно назначить сочетание клавиш
    var styleName = "ИмяВашегоСтиля";
    
    // Сочетание клавиш (например, Ctrl+Shift+F)
    var shortcutString = "0 70 1 1179648"; // Ctrl+Shift+F
    
    // Получаем активный документ
    var doc = app.activeDocument;
    
    try {
        // Находим объектный стиль по имени
        var objectStyle = doc.objectStyles.itemByName(styleName);
        
        if (!objectStyle.isValid) {
            throw new Error("Объектный стиль '" + styleName + "' не найден");
        }
        
        // Назначаем сочетание клавиш
        var menuAction = app.menuActions.itemByName("$ID/" + objectStyle.id);
        if (!menuAction.isValid) {
            throw new Error("Не удалось найти соответствующее действие меню для стиля");
        }
        
        menuAction.shortcutKey = shortcutString;
        alert("Сочетание клавиш успешно назначено для стиля '" + styleName + "'");
    } catch (e) {
        alert("Произошла ошибка: " + e.message);
    }
}
'hmmm'
 
  • Спасибо
Реакции: iGrey
JavaScript:
// Назначение сочетания клавиш объектному стилю
app.doScript(main, ScriptLanguage.JAVASCRIPT, undefined, UndoModes.ENTIRE_SCRIPT, "Назначить сочетание клавиш объектному стилю");

function main() {
    if (app.documents.length === 0) {
        alert("Ошибка: Нет открытых документов. Пожалуйста, откройте документ и попробуйте снова.");
        return;
    }

    // Имя объектного стиля, которому нужно назначить сочетание клавиш
    var styleName = "ИмяВашегоСтиля";
   
    // Сочетание клавиш (например, Ctrl+Shift+F)
    var shortcutString = "0 70 1 1179648"; // Ctrl+Shift+F
   
    // Получаем активный документ
    var doc = app.activeDocument;
   
    try {
        // Находим объектный стиль по имени
        var objectStyle = doc.objectStyles.itemByName(styleName);
       
        if (!objectStyle.isValid) {
            throw new Error("Объектный стиль '" + styleName + "' не найден");
        }
       
        // Назначаем сочетание клавиш
        var menuAction = app.menuActions.itemByName("$ID/" + objectStyle.id);
        if (!menuAction.isValid) {
            throw new Error("Не удалось найти соответствующее действие меню для стиля");
        }
       
        menuAction.shortcutKey = shortcutString;
        alert("Сочетание клавиш успешно назначено для стиля '" + styleName + "'");
    } catch (e) {
        alert("Произошла ошибка: " + e.message);
    }
}
'hmmm'
1726478729866.png

Не работает :(
 
понял... изменил по другому, попробуйте еще разок и что напишет

JavaScript:
app.doScript(main, ScriptLanguage.JAVASCRIPT, undefined, UndoModes.ENTIRE_SCRIPT, "Назначить сочетание клавиш объектному стилю");

function main() {
    if (app.documents.length === 0) {
        alert("Ошибка: Нет открытых документов. Пожалуйста, откройте документ и попробуйте снова.");
        return;
    }

    // Имя объектного стиля, которому нужно вам назначить сочетание клавиш
    var styleName = "ИмяВашегоСтиля";
    
    // Сочетание клавиш (например, Ctrl+Shift+F)
    var shortcutString = "0 70179648"; // Ctrl+Shift+F
    
    // Получаем активный документ
    var doc = app.activeDocument;
    
    try {
        // Находим объектный стиль по имени
        var objectStyle = doc.objectStyles.itemByName(styleName);
        
        if (!objectStyle.isValid) {
            throw new Error("Объектный стиль '" + styleName + "' не найден");
        }
        
        // Создаем уникальное имя для действия меню
        var actionName = "ApplyObjectStyle_" + objectStyle.id;
        
        // Проверяем, существует ли уже такое действие
        var existingAction = app.menuActions.item(actionName);
        if (!existingAction.isValid) {
            // Если действие не существует, создаем новое
            var newAction = app.menuActions.add(actionName);
            newAction.area = MenuAreaGlobal;
            newAction.eventListener = function() {
                app.selection[0].applyObjectStyle(objectStyle, true);
            };
        }
        
        // Назначаем сочетание клавиш
        var menuAction = app.menuActions.item(actionName);
        menuAction.shortcutKey = shortcutString;
        
        alert("Сочетание клавиш успешно назначено для стиля '" + styleName + "'");
    } catch (e) {
        alert("Произошла ошибка: " + e.message);
    }
}
 
  • Спасибо
Реакции: iGrey