Top Promos Apple Test Apple Antivirus Mac Dock Thunderbolt Sunology Comparatif iPhone Nettoyeur Mac

Articles

Mac

AppleScript: Quitter plusieurs applications en un seul click !

Par Didier Pulicani - Mis à jour le

Quelques mots...



Vous pouvez bien sur les quitter une à une et déconnecter, le tout à la main. Mais vous pouvez aussi utiliser le script que je vais présenter et qui quitte toutes les applications définies et déconnecte (je publierais bientôt un autre article sur un script quittant toutes les applications et pas seulement celles définies)
Ce script peut aussi servir au cas où votre père (c' est mon cas...), votre grand-mère ou votre petite-soeur ont du mal à intégrer les manipulations (pourtant basiques !) de déconnexion ou pensent que fermer toutes les fenetres d' une application revient à la quitter...Avec ce script, ils appuient sur une touche et tout est automatique (grace au TdB "Frappe Clavier" et aux touches de fonctions paramétrables).
Cet article s' adresse avant tout aux débutants mais les utilisateurs chevronnés pourront passer les explications sur les structures de base.

Le Script en lui-même...



Ce script se sert de deux compléments de pilotages : "Sändi's Additions" et "Is application running" qui fait partie de "GTQ Programming Suite".Vous les trouverez tous les deux sur www.osaxen.com

Tout d' abord, définissons en property la liste des applications à quitter:

property apps_a_quitter : {}

Mettez entre les crochets et entre guillemets les applications que le script devra quitter (séparées par une virgule)
Par exemple:
property apps_a_quitter : {"Internet Explorer", "Outlook Express"}

Le choix du handler n' est pas compliqué; on veut que le script s' éxécute quand on lance l' application, le handler sera donc :
on run

Note: si vous ne mettez pas de handler, le "on run" sera utilisé par défaut.
N' oubliez pas de terminer votre script par "end run".Vous pouvez le mettre tout de suite et vous taperez le script entre ces deux lignes.

Ensuite nous voulons que le script quitte les applications définies et déconnecte.Seulement il peut arriver que vous vouliez garder vos applications ouvertes et déconnecter (pour lire vos messages par exemple) ou l' inverse.
Nous allons donc définir deux variables booléennes (c-a-d soit "true" soit "false") en fonctions des touches pressées au lancement du script:

set KeepApps to (CommandIsDown)
set KeepConnect to (OptionIsDown)

KeepApps et KeepConnect sont les noms des deux variables et les commandes entre parenthèses proviennent de "Sändi's Additions".Voyons leur dictionnaire:

AppleScript: Quitter plusieurs applications en un seul click !


Donc si la touche commande est pressée au lancement du script, KeppApps sera true.
De même pour KeepConnect avec la touche Option.
Si vous ne touchez à rien les deux variables seront "false" (c-a-d qu' on ne gardera ni les applications ni la connexion)

La suite du script se compose de deux parties se déclenchant chacune à une condition.
Nous allons donc utiliser "if":

if KeepApps is false and apps_a_quitter != {} then
--la partie seravnt à quitter les applications sera ici
end if

Dans le script final, le commentaire sera remplaçé par des commandes.Elles ne se déclencheront que si KeepApps est false (ce qui sera toujours le cas sauf si vous appuyez sur la touche Commande) ET si la variable apps_a_quitter n' est pas vide, c-a-d si vous avez défini des applications à quitter.

Pour que les applications quittent, il sufit de le leur dire tour à tour.Nous allons utiliser pour cela la boucle "repeat":

repeat with i from 1 to (count apps_a_quitter)
set |app| to item i of apps_a_quitter

if (is application running |app|) is true then
tell application |app|
quit
end tell
end if
end repeat

Cette boucle repeat est munie d' un compteur ("i") qui est tout simplement un nombre.A la première éxécution de la boucle, i est égal au nombre après "from" (ici 1) et à chaque passage, il augmente de 1 par défaut (vous pouvez changer ce nombre en spécifiant à la fin de la ligne "by x" où x est un entier) jusqu' à la valeur définie après le "to".Cependant, il est rare que l' on mette un entier après le "to".Généralement (et c' est le cas de notre script), on doit effectuer des opérations sur tous les éléments d' une liste et donc aller du premier au dernier élément de la liste.En mettant (count apps_a_quitter), on est sur d' aller jusqu' au dernier élément de la liste car "count maliste" renvoie le nombre d' éléments contenus dans maliste.La boucle s' arrête quand "i" a atteint la valeur en "to".

Nous définissons ensuite une variable appelée "app" ayant pour valeur l' élément i de la liste.
Seulement, nous devons encadrer son nom de pipe-lines ("|", option-maj-l) car pour AppleScript, app est l' abréviation d' "application" qui a un sens particulier et ne peut être défini comme variable.
Les pipe-lines servent donc à enlever son sens spécifique à un nom de variable.

Bien sur, il ne faut quitter l' application que si elle est déjà lançée !
C' est le rôle de la commande "is application running".Voici son dictionnaire:

AppleScript: Quitter plusieurs applications en un seul click !


Le résultat de cette commande est une booléenne qui, dans notre cas, devra être "true" pour que les commandes à l' intérieur du "if" s' éxécutent et que l' application quitte.

Ensuite, il suffit de déconnecter (seulement si on a pas appuyé sur Option):

if KeepConnect is false then
set EtatRA to (state of (RA status))
if EtatRA is not "inactif" then
RA disconnect
end if
end if

On définit une variable EtatRA qui contient l' état de la connexion obtenu grâce à une commande de "Commandes Remote Access" dont voici le dictionnaire:

AppleScript: Quitter plusieurs applications en un seul click !


La commande RA status retourne une liste d' éléments où chaque élément est précédé d' une étiquette qui indique à quoi il correspond. Cette sorte de liste s' appelle un "record". Pour obtenir l' élément de ce record qui nous intéresse (dans notre cas, le "state"), il suffit de spécifier son étiquette, ce qui nous donne state of (RA status)

Si EtatRA est différent de "inactif", on se sert de la commande RA disconnect (dont vous trouverez la description dans le dictionnaire de "Commandes Remote Access") qui ,comme son nom l' indique, déconnecte tout simplement.

Le script complet



property apps_a_quitter : {}

on run

set KeepApps to (CommandIsDown)
set KeepConnect to (OptionIsDown)

if KeepApps is false and apps_a_quitter != {} then
repeat with i from 1 to (count apps_a_quitter)
set app1 to item i of apps_a_quitter

if (is application running app1) is true then
tell application app1
quit
end tell
end if
end repeat
end if

if KeepConnect is false then
set EtatRA to (state of (RA status))
if EtatRA is not "inactif" then
RA disconnect
end if
end if

end run

Et voilà ! Si vous avez des problèmes, que le script ne marche pas ou que vous ne comprenez pas quelquechose, surtout n' hésitez pas, mailez moi ! Même si ça n' a rien a voir avec l' article, je me ferais un plaisir de répondre à vos questions ou de recevoir vos suggestions, commentaires...

Article entièrement rédigé par Coco

La meilleure batterie nomade (140W 2xUSB-C) en promo à son prix le plus bas (-33%) !

La meilleure batterie nomade (140W 2xUSB-C) en promo à son prix le plus bas (-33%) !

Les batteries externes compactes peuvent être vraiment pratiques en déplacement et une promotion permet aujourd'hui de s'offrir mon modèle...

Le Snapdragon X Plus est plus performant qu'un M3, selon Qualcomm !

Le Snapdragon X Plus est plus performant qu'un M3, selon Qualcomm !

Qualcomm étoffe son catalogue de puces ARM pensées pour les ordinateurs protables en déclinant le Snapdragon X Elite en version Plus et...

Apple plancherait sur des puces maison pour les serveurs et l'IA

Apple plancherait sur des puces maison pour les serveurs et l'IA

Après avoir installé ses propres puces dans ses appareils, Apple pourrait équiper ses serveurs de puces développée par ses...

Adobe dévoile une IA générative plus transparente pour Photoshop

Adobe dévoile une IA générative plus transparente pour Photoshop

A l'occasion de sa conférence MAX, Adobe lance son nouveau Photoshop en version bêta avec des fonctionnalités avancées en...

Des périphériques moins chers pour les créateurs de contenu chez Elgato !

Des périphériques moins chers pour les créateurs de contenu chez Elgato !

Si vous diffusez fréquemment des vidéos sur le net et que vous souhaitez vous équiper afin de proposer des contenus de qualité,...

L'écran 5K Studio Display d'Apple de retour à son prix le plus bas !

L'écran 5K Studio Display d'Apple de retour à son prix le plus bas !

Une nouvelle fournée de moniteurs est disponible aujourd'hui sur la boutique de produits reconditionnés d'Apple. Il faudra toutefois faire vite...

Et si Apple sautait le Mac mini M3 ?

Et si Apple sautait le Mac mini M3 ?

Il y a quelques mois, Apple a commencé sa transition vers les processeurs M3, à commencer par le MacBook Pro 14" M3, le MacBook Pro 16" M3 Pro,...

8 raisons de passer à UPDF, l'éditeur de fichiers PDF pour Mac, iPhone et iPad

8 raisons de passer à UPDF, l'éditeur de fichiers PDF pour Mac, iPhone et iPad

Le PDF s'est imposé au fil du temps comme un moyen de partager facilement des contenus textes, imagés, tout en conservant une mise en page...

Commentaires

Connectez-vous/créez un compte pour réagir à cet article !
Oops, vous n'êtes pas connecté

Pour évaluer un commentaire sur Mac4Ever, vous devez être connecté avec votre compte utilisateur.

1 commentaire
Connectez-vous/créez un compte pour réagir à cet article !
Oops, vous n'êtes pas connecté

Pour évaluer un commentaire sur Mac4Ever, vous devez être connecté avec votre compte utilisateur.