Créer une boîte de dialogue AppleScript

Lucas09Ldt

Membre confirmé
9 Février 2022
12
2
Bonjour,
J'utilise Automator afin de créer un programme et je sais comment ajouter un script AppleScript à celui-ci.

Je cherche à créer un script AppleScript affichant une boîte de dialogue avec une question et deux options (sous la forme de deux boutons), toutes deux déclanchant l'ouverture d'une application, mais différente, lorsqu'elles sont cliquées.

Je n'utilise pas le bloc "Demander une confirmation" d'Automator, qui, en effet, affiche une boîte de dialogue avec deux options, correspondante à ce que je cherche, mais je ne peux pas personnaliser l'action des deux boutons.

Pouvez-vous m'aider ? Ou me donner un exemple de code ?
Merci par avance :)
 
Bonjour,
Un exemple ci-dessous pour choisir d'ouvrir soit Numbers, soit Safari.
On peut demander avec 3 boutons maxi...
Voir les commentaires de chaque ligne


Bloc de code:
tell application "Finder"
   
    display dialog "Ma question ? " buttons {"Numbers", "safari"} --ouvre la boite de dialogue avec question et 2 boutons
    set lechoix to button returned of result --récupère le bouton choisi dans la variable lechoix
   
    if lechoix is "Numbers" then --si le choix est Numbers
        tell application "Numbers" --ouvre numbers
            activate--active numbers
        end tell
    else --sinon (autre que Numbers) mais on pourrait aussi mettre end if et if lechoix is "safari"
        tell application "Safari" --ouvre safari
            activate
        end tell--active safari
    end if
   
end tell
 
  • J’aime
Réactions: Lucas09Ldt
Une petite question : si je souhaite ouvrir une application qui n'est pas une application système mais une application installée dans un dossier quelconque, il faut utiliser une autre commande que "tell", je crois ? Et indiquer un chemin d'accès ?
Non pas du tout ! il suffit de demander "tell application ..." en donnant le nom exact de l'application tel qu'il apparaît dans le menu "a propos"

Si le nom ne correspond pas à une application, applescript t'ouvrira une fenêtre en te demandant de sélectionner l'application.

exemple pour excel
Bloc de code:
tell application "Microsoft Excel"
    activate
end tell

La commande tell n'est pas en soi une commande d'ouverture, mais sers juste déclarer un bloc, signifiant "dire à l'application..."
Ensuite toute action qui se trouvera dans le bloc tell (entre tell application et end tell) sera exécutée par cette application...

Pour ouvrir une application la commande est "launch ...", mais pas utile dans ton cas...
 
Dernière édition:
Pour un document la commande est "open ..." suivi du chemin complet d'accès au fichier.
J'ai édité ma réponse #5 , à revoir
 
  • J’aime
Réactions: Lucas09Ldt
Bonjour,
Il n'est pas possible de créer des boites de dialogue évoluées en applescript !
La seule possibilité est d'ajouter, dans la boite de dialogue standard, une icone.

Mais pourquoi faire un utilitaire de création de DMG pour mac, alors que cette possibilité, très complète, existe dans le système, dans utilitaire de disque ?
 
Deuxièmement, comment peut-on ajouter une icône dans la boîte de dialogue standard ?
Il suffit d'ajouter dans la commande de dialogue with icon suivi du chemin de l'icone style:
Bloc de code:
display dialog "Souhaiterez-vous chiffrer votre image disque ?" buttons {"Non", "Oui"} with icon "HD:Users:MOI:desktop:icone.icns"as alias
 
  • J’adore
Réactions: Lucas09Ldt
l'icone doit être présente lors du lancement du script, puisque tu lui demandes de la charger depuis son chemin.
Tu peux la stocker dans la package de ton application, afin d' être sur qu'elle soit présente, si tu distribues ton appli.
 
Mais simplement un clic droit sur ton appli, ouvrir le contenu du paquet, ouvrir le dossier contents et mettre ton icone dedans et bien sur dans ton script adapter le chemin...

Mais bon c'est toi qui voit ! ;)
 
  • J’aime
Réactions: Lucas09Ldt
Il faut installer une application puis demander dans le script d'utiliser cette appli pas top et pas facile à mettre en oeuvre !.
cherche sur le net "SKProgressBar"