Sauvegardes automatiques avec Applescript et Automator

dicaalma

Membre confirmé
16 Décembre 2004
12
0
59
Je souhaite effectuer des sauvegardes automatiques en utilisant Applescript et Automator notamment pour l'application "carnet d'adresse". Sans connaissance précise d'Applescript, je cherche un moyen d'utiliser le menu "Sauvegarder le carnet d'adresses..." par un script.

En cherchant à droite et à gauche, j'ai trouvé cette possibilité ... qui ne m'amène pas très loin ! ....

tell application "Address Book"
activate
end tell
tell application "System Events"
.....tell process "Adress Book"
..........tell menu bar 1
................tell menu bar item "Fichier"
......................tell menu "Fichier"
............................click menu item "Sauvegarder le carnet d'adresses..."
......................end tell
................end tell
..........end tell
.....end tell
end tell


Le message d'erreur s'affiche "Erreur dans System Events : NSReceiverEvaluationScriptError: 4" pour la ligne de commande "click menu item "Sauvegarder le carnet d'adresses..."

Si quelqu'un a une petite idée sur la question ou a déjà planché sur le sujet :up: .
Merci par avance.
 
tell application "Address Book" to activate
tell application "System Events"
tell menu 1 of menu bar item 3 of menu bar 1 of application process "Address Book"
perform action "AXPress" of menu item 12​
end tell​
end tell
 
Cela marche !... Je ne voudrais pas abuser mais existe-t-il un moyen de paramétrer le dossier de sauvegarde par défaut puis valider le bouton "enregistrer" de façon automatique.
Peux-tu me préciser à quoi correspond la ligne de commande - perform action "AXPress" - J'ai retrouvé la première partie dans le dictionnaire d'Address Book mais pas "AXPress".
 
dicaalma a dit:
Peux-tu me préciser à quoi correspond la ligne de commande - perform action "AXPress" - J'ai retrouvé la première partie dans le dictionnaire d'Address Book mais pas "AXPress".
C'est juste une autre façon d'écrire l'action "click" utilisée dans ton script original.
Manifestement, le problème venait de l'appel "tell process" au lieu de "tell application process".