Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

amityweb

macrumors member
Original poster
Oct 5, 2010
40
1
Wales
Hi

I have a script that moves email from Mail to Omnoficus. If both apps are running it works.

But if one or both are not running, even though the tell application script will start the app, they crash, and my script does not end, and does not work.

So I thought I would add in the activate command to start the apps if they are not running.

I can only find online functions to tell if an app is running, and not NOT running. I tried modifying it but the whole thing still crashed the same even if I did not use it (so perhaps its not being called).

This is what I have so far and wondered if anyone knows:

Code:
if appIsNotRunning("OmniFocus") then
	tell application "OmniFocus"
		activate
		delay 10
	end tell
end if


on appIsNotRunning(appName)
	tell application "System Events" to (name of processes) does not contain appName
end appIsNotRunning

The delay was just because I thought I should wait a bit for the app to finish starting just in case.

Thanks
 

kryten2

macrumors 65816
Mar 17, 2012
1,114
99
Belgium
Try this :

Code:
tell application "System Events"
	set isOmnifocusRunning to (count of (every process whose bundle identifier is "com.omnigroup.OmniFocus")) > 0
	set isMailRunning to (count of (every process whose bundle identifier is "com.apple.mail")) > 0
end tell
if isOmnifocusRunning and isMailRunning then
	-- if only one or none are running do nothing
	-- if both apps are running do your stuff
end if
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.