Bonsoir,
Tout d'abord quelques commentaires sur ton script : (si je puis me permettre !)
Il semble fastidieux de demander à l'utilisateur de saisir le nom d'une application (avec les risques d'erreur). Pourquoi ne pas lui demander simplement de choisir dans une liste ? Cela évitera toute erreur.
Par ailleurs, tes 2 premières lignes de dialogue demandent à l'utilisateur de confirmer qu'il veut continuer.
L'interface Mac par défaut doit utiliser les boutons OK ou Annuler (cela rend le Mac très homogène en interface). En plus, le bouton Annuler interrompt directement le script, donc autant s'en servir. Nul besoin de mémoriser la réponse dans la variable Resp.
Enfin, d'un point de vue fonctionnel, le path du login item doit être le chemin Unix (donc avec des "/" et pas des ":") et cela en partant du dossier racine du disque, et y compris l'application elle-même. Donc un path correct devrait être "/Applications/Nom_Appli.app" et pas seulement "/Applications/"
En tenant compte de ses remarques voici un premier script qui fonctionne en demandant à l'utilisateur de sélectionner une application (par défaut dans le dossier Application) :
Code:
1 2 3 4 5 6 7 8 9
| display dialog "Ce programme vous permet de faire démarrer des applications au démarrage d'OS X, voulez vous continuez ?" default button "OK"
set Mon_App to choose file of type {"app"} with prompt "Sélectionner l'application à ajouter" default location (path to applications folder)
tell application "Finder"
set App_Name to displayed name of Mon_App
set App_Path to (POSIX path of Mon_App) as string
set App_Path to text 1 thru ((length of App_Path) - 1) of App_Path
end tell
tell application "System Events" to make new login item at end of login items with properties {name:App_Name, path:App_Path, hidden:false, kind:"Application"} |
note : la ligne 8 est une astuce car une application est un dossier et pas un fichier. Sans cela, on aurai dans App_Path une valeur "/Applications/toto.app/" (le "/" à la fin est de trop !)
En allant un peu plus loin, on peut imaginer que l'utilisateur veut ajouter plusieurs applications d'un coup. Dans ce cas, il suffit d'autoriser la sélection multiple (avec la touche commande) et de traiter chaque élément sélectionné dans une boucle repeat. le script ci-dessous fait exactement cela :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
display dialog "Ce programme vous permet de faire démarrer des applications au démarrage d'OS X, voulez vous continuez ?" default button "OK"
set App_List to choose file of type {"app"} with prompt "Sélectionner les applications à ajouter" default location (path to applications folder) with multiple selections allowed
repeat with Mon_App in App_List
tell application "Finder"
set App_Name to displayed name of Mon_App
set App_Path to (POSIX path of Mon_App) as string
set App_Path to text 1 thru ((length of App_Path) - 1) of App_Path
end tell
tell application "System Events" to make new login item at end of login items with properties {name:App_Name, path:App_Path, hidden:false, kind:"Application"}
end repeat |
Bien sûr ces 2 scripts sont testés et fonctionnent.
Cordialement