Jak uruchomić kod (na przykład display dialog("test")
) przy użyciu AppleScript tylko wtedy, gdy aplikacja „Finder” jest aktualnie aktywna / aktywna.
Jak uruchomić kod (na przykład display dialog("test")
) przy użyciu AppleScript tylko wtedy, gdy aplikacja „Finder” jest aktualnie aktywna / aktywna.
Odpowiedzi:
Będzie to działać, jeśli skrypt zostanie wywołany z edytora skryptów, ponieważ „zejdzie mu z drogi”, aby sprawdzić kolejną aplikację w linii, ale zakończy się niepowodzeniem, jeśli klikniesz dwukrotnie w Finderze, ponieważ Finder będzie zawsze na końcu w kolejce.
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
Pozostawiając poprzednią odpowiedź tutaj dla potomności
Znalazłem całą odpowiedź po tym, jak początkowo nie przeczytałem pytania ;-)
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)
aby potwierdzić dokładnie to, co według skryptu jest najważniejsze.
tell application "app_name"
) Różnią się od nazw procesów (np set frontmost of process "app_process" to true
.).