2 votes

AppleScript s'exécute dans Automator, mais échoue lorsqu'il est lancé via un raccourci.

J'ai l'AppleScript suivant dans un service utilisant Run AppleScript dans Automator :

on run {input, parameters}
    set date_ to short date string of (current date)
    tell application "System Events"
        keystroke date_
    end tell
end run

Il est configuré pour ne recevoir aucune entrée dans aucune application, et la sortie remplace le texte. Si je place le curseur dans la fenêtre d'édition dans Automator et que je clique sur le bouton d'exécution, cela fonctionne et j'obtiens la sortie, par exemple :

...
end run8/15/18

Je l'ai lié à un raccourci clavier (Propriétés système -> Clavier -> Raccourcis -> sélectionner mon script et lier une combinaison de touches). Cependant, lorsque j'appuie sur la combinaison de touches, quelle que soit l'application, j'obtiens brièvement (1 à 2 secondes) un petit engrenage tournant dans la barre de menu, et l'erreur suivante dans la console :

Détection de contraintes manquantes pour <private>. Il ne peut pas être placé car il n'y a pas assez de contraintes pour définir complètement la taille et l'origine. Ajoutez les contraintes manquantes, ou définissez translatesAutoresizingMaskIntoConstraints=YES et les contraintes seront générées pour vous. Si cette vue est mise en page manuellement sur MacOS 10.12 et plus, vous pouvez choisir de ne pas appeler [super layout] à partir de votre commande prioritaire. Définissez un point d'arrêt sur DETECTED_MISSING_CONSTRAINTS pour déboguer. Cette erreur ne sera enregistrée qu'une seule fois.

La date n'est ajoutée à aucune des applications où je fais cela. J'ai vu une autre personne avec un problème similaire ici ( https://www.alfredforum.com/topic/10311-applescripts-no-longer-work-script-editor-hangs-not-responding-on-sierra/ ) mais ils n'ont pas obtenu de réponse non plus. C'est déroutant, car cela semble être lié au rendu des fenêtres, mais je n'ai aucun élément d'interface graphique dans mon script, AFAIK.

Je suis en train de courir :

Mac OS Sierra 10.12.6 (16G1510)
Automator Version 2.7 (428)

Ok, en cherchant pour ce post, j'ai trouvé ce post( https://superuser.com/questions/153890/assign-a-shortcut-to-running-a-script-en-os-x/264943 ) qui affirme qu'il existe un bogue qui empêche les services système de fonctionner après Snow Leopard. Quelqu'un connaît-il une solution de contournement sans outils tiers ?

1voto

aaplmath Points 2850

J'ai réussi à le faire fonctionner en enregistrant l'AppleScript comme une application distincte, puis en créant un service Automator qui lance simplement cette application. Voici les étapes :

  • Créez un nouvel AppleScript dans l'éditeur script et collez-y le code suivant (le vôtre, mais avec un léger ajout) :

    on run
        set date_ to short date string of (current date)
        tell application "System Events"
            set visible of (first process where it is frontmost) to false -- return focus to initiating app
            delay 0.1 -- make sure the application has had time to regain focus—if the script doesn't work, try upping this value a little
            keystroke date_
        end tell
    end run
  • Sauvegarder le script en tant qu'une Application .

  • Créez un nouveau service dans Automator et ajoutez une fonction Launch Application action. Définissez l'application comme celle que vous venez d'enregistrer à partir de l'éditeur script.

  • Associez un raccourci clavier à cette action Automator.

Je ne peux pas vérifier que cela fonctionne sur Sierra, mais cela fonctionne sur High Sierra 10.13.6.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X