Scripts de Illustrator que desaparecen de Acciones

He creado Acciones que incluyen scripts (usando Insert Menu Item). Logré que los scripts aparecieran en el menú agregándolos a la carpeta ~\Presets\en_US\Scriptsen mi directorio de Illustrator.

El problema es que cada Illustrator se reinicia, la línea en la Acción que ejecuta el script desaparece. Supongo que se debe a que hay un momento en que Illustrator se inicia antes de que busque scripts en esa carpeta y parece que esa línea apunta a un elemento que no está allí.

Sé que esta es una pregunta oscura, pero ¿alguien se ha encontrado con esto? ¿Y alguien sabe una solución?

(O incluso una mejor manera de asignar una tecla de acceso rápido a un script probablemente estaría bien)

Respuestas (2)

[Ahora CORREGIDO: ¡Actualización de octubre de Illustrator CC2017!]

El problema viene desde siempre, se debe a la necesidad de mostrar física-visualmente el menú Archivo para que se vean los scripts que están instalados en la carpeta scripts de Adobe Illustrator. Solo entonces puede volver a cargar las acciones que contienen los scripts cargando los conjuntos de acciones, para recuperar los elementos del menú del script en funcionamiento. Se puede usar una forma de secuencias de comandos semiautomática ligera en las versiones CS6+ para ahorrar algunos clics: depende de que sus conjuntos de acciones se guarden en una carpeta predeterminada. También debe instalarse como un script en el menú Archivo > Scripts. Una vez que está allí, funciona haciendo que active manualmente este script a través del menú de archivos que, por definición, muestra el menú de archivos. Dado que el menú se muestra en el punto de activación del script, las acciones que el script vuelve a cargar automáticamente estarán funcionando.

 #target illustrator
function ReloadActions(){
    function removeActionSet(setName){
        var errorFlag = false;
        while(!errorFlag){
            try {
                app.unloadAction(setName, "");
            } catch (e) {
                errorFlag = true;
            }
        }
    };
    function loadActionSet(aiaFile){
        app.loadAction(aiaFile);
    };
    function reloadActionSet(aiaFile, setName){
        removeActionSet(setName);
        loadActionSet(aiaFile);
    };
    if((app.version.substr(0, 2) * 1) < 16){
        alert("Sorry, the Action Reloader script only works in versions CS6 and above.");
        return;
    }
    var actionFolder = Folder(Folder.myDocuments + "/" + "Illustrator Actions");
    if(!actionFolder.exists){
        alert("The folder for script-reloadable Actions is not found at '" + decodeURI(actionFolder) + "'");
        return;
    }
    var fileMask = ($.os.match("Windows"))? "*.aia" : function(f){return f.name.match(/\.aia$/);}
    var actionFiles = actionFolder.getFiles(fileMask);
    var thisFile, thisSetName;
    for (var i = 0; i < actionFiles.length; i++) {
        thisFile = actionFiles[i];
        thisSetName = decodeURI(thisFile.name).replace(".aia", "");
        reloadActionSet(thisFile, thisSetName);
    }
};
ReloadActions();
Sabes que puedes hacer/lanzar esto en vbscipt o applescript. Luego ejecútelo en carga y ponga un temporizador esperando digamos un minuto y dispare después de eso. Por supuesto, es un poco complicado.
Sí, pero debido a todos los problemas, elijo dejar de vender esta solución a este nivel. (Algunos problemas ni siquiera son evidentes: algunos clientes de correo electrónico no envían archivos .vbs por correo electrónico, por lo que debe cambiar la extensión o pegar el texto del script en el correo electrónico). Bueno, en este caso, si el objetivo es simplemente activar scripts a través de atajos, también podría usar como dijo AHK en Windows o Keyboard Maestro en Mac, etc.
Acordado. Esta es también la razón por la que abandoné el complemento, ya que más tarde fue posible hacer esto. Pero mantener el complemento no es gratuito y puedo vivir sin las teclas de acceso rápido. De todos modos, si crea un complemento con sus propios elementos de menú que lanzan scripts, tampoco tendrá problemas.
Ah, y por cierto, puede escribir los mismos scripts sin VBS en, por ejemplo, python o c #, si desea que se aplique lo mismo a applyscript, ya que VBS api es en realidad una API COM que funciona igual que VBS y Applescript es una API similar. Solo una mentira común a los niños para decir que es para visual basic o applescript.
Cierto: escuché que los complementos .aip se ven más afectados por los cambios de versión, etc. Supongo que lógicamente esto tiene sentido ya que Extendscript es una capa abstracta para las funcionalidades de la aplicación, y los scripts del sistema operativo que hacen elementos del menú se resumen aún más al nivel 'bot' . En un tema diferente: estoy aprendiendo todo sobre estas cosas y quiero ingresar al SDK de AI, usando C # y Visual Studio 2015, ¿crees que es posible? Su desarrollador PDF dice VS 2010...
Y les tomó solo 10 años arreglar esto.

Sí, es una limitación bien conocida. No hay una buena solución. Adobe se ha negado a corregir este error por alguna razón. Durante mucho tiempo también, lea más de 5 años. Me han dicho que incluso los clientes de muy alto perfil han solicitado esto en conversaciones directas con adobe. Créelo o no.

Puede eliminar y volver a cargar las acciones y funcionarán. Incluso puede escribir un complemento que haga esto automáticamente, pero la única forma en que sé cómo hacerlo rompe la licencia de Adobe, así que no lo hago. No puede asignar teclas de acceso rápido para scripts por alguna razón.

Alternativamente, puede usar la tecla de acceso rápido automático para evitar el problema.

¿Rompe la licencia debido a la cláusula de 'ingeniería inversa'? De lo contrario, ¿cuál es el problema?
@Silly-V ¡Bingo! Sí, ese es el problema de hecho.