4 votes

Comment appeler une sous-routine spécifique d'un AppleScript à partir d'un autre AppleScript ?

Je comprends qu'il est possible de déclencher un fichier .scpt enregistré quelque part sur mon ordinateur à partir d'un autre fichier .scpt.

Puis-je appeler un sous-programme spécifique de ce fichier .scpt à partir d'un autre fichier .scpt ? Je veux ignorer tout le script, et n'exécuter que le code qui se trouve dans une sous-routine spécifique.

Je comprends que je peux simplement copier la sous-routine dans son propre fichier .scpt et accomplir ce que je veux de cette façon. Cette méthode est démontrée dans cette réponse . Toutefois, je préférerais ne pas avoir à le faire, pour des raisons de commodité.


Est-il également possible de transmettre des variables à cette sous-routine ? Mon besoin actuel ne nécessite pas cette capacité, mais je suis toujours curieux.


2voto

Graham Miln Points 39606

La fonction load script

La fonction load script fera ce que vous voulez.

Exemple

Sur votre bureau, enregistrez un .scpt contenant les éléments suivants saySomething gestionnaire :

on saySomething()
    say "hello"
end saySomething

Ensuite, dans un autre script, vous pouvez appeler saySomething :

set myOtherScript to load script (alias ((path to desktop folder as string) & "external.scpt"))
myOtherScript's saySomething()

L'objet renvoyé par load script est un objet script. Une fois chargé, l'objet script est traité comme un objet local et peut avoir son code poignées appelé, y compris avec des paramètres.

Véase Puis-je placer le code applescript partagé dans un fichier séparé et le charger dans différents scripts ? pour d'autres exemples.

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