macOS : Vérifier qu’une application est lancée et afficher une notification ?

Il existe plusieurs méthodes, celle qui est proposée ici s’appuie sur AppleScript.

Le script est décomposé en deux parties, la première est une fonction qui va déterminer si l’application est lancée (ApplicationEstLancee() ), pour cela on utilisera les « System Events » une librairie fournie par Apple qui permet d’interroger le OS X. Cette fonction reçoit en argument le contenu de la variable « monApplication ». C’est là que vous donnerez le nom de l’application qui vous intéresse.

Si cette fonction retourne « vrai » (true en Anglais) alors le texte qui sera affiché est placé dans la variable monTexte, il contiendra la phrase : « L’application Safari est lancée ! ». Notez que l’on pourrait écrire la condition comme ceci :

if ApplicationEstLancee(monApplication) = true . Cela fonctionne aussi.

Le texte est ensuite envoyé comme notification au système et apparaitra dans le centre de notifications.

image-01.png (Fenêtre de notification avec l’application lancée)

Si dans le cas contraire, l’application n’est pas lancée, la fonction ApplicationEstLancee() retournera : False (ou Faux en Français), la notification ressemblera à cela :

image-02.png

(Fenêtre de notifications avec l’application qui n’est pas lancée)

Le script complète dans l’éditeur de script :

image-03.png(Fenêtre principale de l’éditeur de script)


-- Fonction principale
-- Vérification d'exécution d'une application
on run
	--- Definition d’une variable avec le nom de l’application
	set monApplication to "Safari"
	-- Test l’exécution du programme, pour cela utilise la fonction ApplicationEstLancee()
	if ApplicationEstLancee(monApplication) then
		set monTexte to "l'Application " & monApplication & " est lancée !"
		display notification (monTexte)
	else
		set monTexte to "l'Application " & monApplication & " n'est pas lancée !"
		display notification (monTexte)
	-- Ajoutez d’autres commandes comme le lancement de l’application.
	end if
end run

-- Création d’une fonction de verification si l’application est lancée 
-- Retourne vrai si un processus porte le nom de l'application

on ApplicationEstLancee(monApplication)
	tell application "System Events" to (name of processes) contains monApplication
end ApplicationEstLancee

Vous pouvez compléter ce script en lançant l’application si par exemple elle n’est pas ouverte ou au contraire fermer le programme, attention toutefois à la commande utilisée, dans de nombreux cas, la fermeture de l’application implique la perte des documents ouverts.

Henri Dominique Rapin

Publicités
Publié dans Mac

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s