IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AppleScript Discussion :

[AppleScript] - Faire appel à des scripts externes


Sujet :

AppleScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 6
    Points : 3
    Points
    3
    Par défaut [AppleScript] - Faire appel à des scripts externes
    Bonjour,

    Dans le cadre de mon activité je "développe" quelques appleScript pour automatiser des taches. Ils ont tous des fonctions communes comme par exemple la connexion à une application, l'exécution d'une séquence clavier, de clics de souris dans une application spécifique,...

    Si des éléments d'une fonctions doivent évoluer, je suis obligé de retourner dans chaque script pour faire la modification, puis de les réenregistrer en tant qu'exécutable.

    J'aimerai que ces fonctions soient des scripts (exécutables) communs que je pourrai appeler selon les besoin des tâches à automatiser.

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    -- Automatisation
    set userAppli to "toto"
    set passwdAppli to "motDePasse"
    
    -- connexion à l'appli => exécution d'un script externe en lui envoyant des arguments
    -- ce script externe retourne un booléen (true/false) en fonction de la réussite de son exécution
    
    set userConnecte to open scriptConnexion(userAppli,passwdAppli)
    
    if userConnecte is "true" then
         --suite du script
         --
         --
    else
         -- fin du script
    end if
    
    ...

    Ainsi si mon script devait évoluer, je modifierai "scriptConnexion" une fois et toutes mes autres scripts bénéficieraient de la modification apportée.

    Pensez vous qu'il soit possible de faire cela ?

  2. #2
    Membre éprouvé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 602
    Points : 1 239
    Points
    1 239
    Par défaut
    Bonjour,
    Oui, bien sûr c'est non seulement une fonction pratique, mais qui simplifie les tâches de maintenances comme tu l'expliques.

    Comment faire ? cela se passe en 2 parties :
    1) écritures des sous scripts dans une ou plusieurs bibliothèques de script
    2) utilisation dans tes application des appels à ces sous-scripts

    1) prenons un exemple avec un sous-script addition (je sais l'exemple est stupide !). Dans l'éditeur de script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    On Ma_Somme(A, B)
    Set MS to A + B
    Return MS
    end Ma_Somme
    Le script retourne le résultat grâce à l'instruction "return". Si tu souhaites retourner plusieurs variables, tu dois retourner un record.
    Tu dois enregister ce fichier sous forme de script.
    Tu peux l'enregistrer dans ta bibliothèque dans un dossier Script Library, par exemple sous le nom "Mon_Addition".

    2) ton code principal doit faire un appel à ce script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set AA to 10
    Set BB to 15
    tell script "Mon_Addition" 
    Set CC to Ma_Somme(AA,BB)
    end tell
    Le résultat sera bine 25 dans la variable CC.

    Cordialement

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Merci pour ton aide PBEL c'est exactement ce que je souhaite faire !

    Par contre je crois que je n'ai pas compris la la partie de création du dossier Script Library :

    J'ai créé un dossier sous la bibliothèque du compte utilisateur (/User/toto/Library/Script Library) et j'y ai enregistré le script "Mon_Addition.scpt"

    A l'exécution du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tell script "Mon_Addition" 
    Set CC to Ma_Somme(10,15)
    end tell
    j'obtiens :
    "Erreur de syntaxe - Il est impossible d'obtenir script "Mon_Addition".
    Pourrais-tu détailler la création de cette bibliothèque ?

    Et un grand merci pour ton aide !

  4. #4
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Trouvé : Le dossier doit être nommé Script Libraries

    /User/toto/Library/Script Libraries

  5. #5
    Membre éprouvé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 602
    Points : 1 239
    Points
    1 239
    Par défaut
    Tu as tout à fait raison Knarfo !
    Désolé pour l'erreur sur le nom du dossier.
    Logique d'ailleurs car il peut y avoir plusieurs librairies de script et pas une seule... d'où le "libraries".

    j'en profite pour signaler que tu peux mettre ce dossier dans la bibliothèque User (comme tu l'as fait) ou la bibliothèque principale (à la racine du disque).
    Dans ce second cas, la portée de tes scripts s'étendra à tout les utilisateurs du mac et pas seulement à celui de la session courante.

    Cordialement

  6. #6
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    En fait ça fonctionne sous Mavericks mais sous Moutain Lion j'ai le message

    error "script \"Mon_Addition\" ne comprend pas le message Ma_somme." number -1708 from script "Mon_Addition"

    Il y a-t-il une différence de création de bibliothèque entre ces 2 versions de MacOs ?

  7. #7
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    La réponse est la : https://developer.apple.com/library/...0982-CH109-SW1

    Il s'agit d'une nouveauté de Mavericks !


    AppleScript
    Script Libraries: You can now use a script as a script library, and use the handlers and properties it defines from any other script, making it dramatically easier to reuse code. Libraries may also use AppleScript/Objective-C and define their own terminology.

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/06/2012, 11h54
  2. [1.x] Appel à des scripts externes
    Par Hellblow dans le forum Symfony
    Réponses: 3
    Dernier message: 26/09/2011, 18h47
  3. [PHP 5.0] Limitation du nombre des arguments pour faire tourner un script externe
    Par steph_arrow dans le forum Langage
    Réponses: 2
    Dernier message: 11/04/2011, 15h51
  4. Réponses: 19
    Dernier message: 30/06/2008, 12h19
  5. [EasyPHP] Faire tourner des scripts PHP en cgi
    Par Jim_Nastiq dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 19/04/2006, 10h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo