18 votes

AppleScript obtenir l'application active

Comment puis-je exécuter un code (par exemple display dialog("test") ) à l'aide d'AppleScript, uniquement si l'application "Finder" est actuellement active.

26voto

Tetsujin Points 95239

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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X