Wie kann ich Code (zum Beispiel display dialog("test")
) mit AppleScript nur ausführen, wenn die "Finder" -Anwendung derzeit im Fokus / aktiv ist?
Wie kann ich Code (zum Beispiel display dialog("test")
) mit AppleScript nur ausführen, wenn die "Finder" -Anwendung derzeit im Fokus / aktiv ist?
Antworten:
Dies funktioniert, wenn das Skript vom Skript-Editor aus aufgerufen wird, da es „aus dem Weg geht“, um die nächste App in der Zeile zu überprüfen. Wenn Sie im Finder doppelt darauf klicken, schlägt dies fehl, da der Finder dann immer in der letzten Zeile ist.
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
Lassen Sie die vorherige Antwort hier für die Nachwelt
Komplette Antwort neu zusammengestellt, nachdem die Frage anfangs nicht richtig gelesen wurde ;-)
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)
, um genau zu bestätigen, was das Skript für das vorderste hält.
tell application "app_name"
) unterscheiden sich von den Prozessnamen (z set frontmost of process "app_process" to true
. B. ).