Come potrei eseguire il codice (ad esempio display dialog("test")
) utilizzando AppleScript solo se l'applicazione "Finder" è attualmente attiva / attiva.
Come potrei eseguire il codice (ad esempio display dialog("test")
) utilizzando AppleScript solo se l'applicazione "Finder" è attualmente attiva / attiva.
Risposte:
Funzionerà se lo script viene chiamato da Script Editor, in quanto "evita" di controllare la prossima app in linea, ma fallirà se si fa doppio clic da Finder, poiché 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 qui la risposta precedente per i posteri
Rifiuta l'intera risposta dopo non aver letto correttamente la domanda 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
display dialog (activeApp)
per confermare esattamente quello che lo script ritiene essere il primo.
tell application "app_name"
) Differiscono dai nomi dei processi (ad es set frontmost of process "app_process" to true
.).