Comment puis-je exécuter un code (par exemple display dialog("test")
) à l'aide d'AppleScript, uniquement si l'application "Finder" est actuellement active.
Réponse
Trop de publicités?Cela fonctionnera si le script est appelé à partir de l'éditeur script, car il " s'écarte du chemin " pour vérifier la prochaine application en ligne, mais échouera si on double-clique depuis le Finder, car le Finder sera alors toujours le dernier en ligne.
tell application "System Events"
set frontmostProcess to first process where it is frontmost
set visible of frontmostProcess to false
repeat while (frontmostProcess is frontmost)
delay 0.2
end repeat
set secondFrontmost to name of first process where it is frontmost
set frontmost of frontmostProcess to true
end tell
tell application (path to frontmost application as text)
if "Finder" is in secondFrontmost then
display dialog ("Finder was last in front")
else
display dialog (secondFrontmost & " was last in front")
end if
end tell
Je laisse la réponse précédente ici pour la postérité
Réponse entièrement remaniée après avoir mal lu la question au départ ;-)
tell application "System Events"
set activeApp to name of first application process whose frontmost is true
if "Finder" is in activeApp then
display dialog ("test")
else
display dialog ("test2")
end if
end tell