Re: exec(uting) Safari - How (newbie)
Re: exec(uting) Safari - How (newbie)
- Subject: Re: exec(uting) Safari - How (newbie)
- From: Jason Coco <email@hidden>
- Date: Wed, 2 Jul 2008 11:46:01 -0400
On Jul 2, 2008, at 11:38 , Clark Cox wrote:
On 7/2/08, Jason Coco <email@hidden> wrote:
Yeah, to me it is... although I still agree that it's not an ideal
solution for a Cocoa application...
By the way, assuming you change char *args[] = { "-a", "Safari",
NULL }; to char *args[] = { "/usr/bin/open", "-a", "Safari", NULL };
the exec* example actually works while the LaunchServices example
fails with kLSApplicationNotFoundError.
After playing around with it a little, I discovered that you need to
actually call it CFSTR("Safari.app") in this case to get it to work
correctly... so like anything else in life, since I'm much more
familiar with the POSIX/BSD API (and since pretty much every
operating
system I've ever worked with treats exec* similar) it's a lot easier
*for me* than using LaunchServices.
Easy or not, it's still wrong. Launching safari via exec will not, for
example, re-use an already/running instance.
Just don't use exec to launch GUI applications--period.
I don't think anyone disagrees with that... that's why the suggestion
was to use /usr/bin/open if you were gonna use an exec* call. If you
use /usr/bin/open it makes a proper connection to the window server as
well as sending the proper apple event to an already-started
application.Attachment:
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden