What is the easiest way to tell if an application is open? Or how to get a list of currently open applications, so I know which to close.
And… is there anyway to get around the Script Editor from asking where program is when I use the “Tell Application «application name»” line?
Thanks
David
The Finder’s ‘processes’ should tell you what you want to know. The following gives the names of active applications and extensions:
tell application "Finder"
set theProcesses to name of every process
end tell
If you just want the names of open applications:
tell application "Finder"
set theApps to name of every process whose file type is "APPL" -- must be upper case
end
When closing an application, it’s best not to use the word ‘quit’ inside a Finder tell block as the Finder itself will then usually quit. You may be looking for a piece of code like this:
tell application "Finder"
process "My App" exists
end tell
if the result is true then tell application "My App" to quit
Here’s a reliable way of quitting all open applications except for the one actually running the script:
set myPath to path to me
try
tell application "Finder"
set myName to myPath's name
set appNames to (name of every process whose ¬
file type is "APPL" and name is not myName) as list
end tell
repeat with thisName in reverse of appNames
tell application thisName to quit
end repeat
on error
end try
I use ‘reverse’ above to close the apps in the opposite order to that in which they were opened. Hopefully, this reduces memory fragmentation - but I’m not absolutely sure…