AppleScript ottiene l'applicazione attiva

12

Come posso eseguire codice (ad esempio display dialog("test") ) usando AppleScript solo se l'applicazione "Finder" è attualmente attiva / attiva.

    
posta William 13.02.2015 - 00:44
fonte

1 risposta

16

Funzionerà se lo script viene chiamato da Script Editor, in quanto "si disinteressa" per controllare la prossima app in linea, ma fallirà se si fa doppio clic su Finder, poiché il Finder sarà sempre l'ultimo in linea .

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

Lasciando la risposta precedente qui per i posteri

Rejigged intera risposta dopo aver letto la domanda correttamente inizialmente; -)

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
    
risposta data 13.02.2015 - 09:14
fonte

Leggi altre domande sui tag