On Jul 2, 2008, at 11:38 , Clark Cox wrote:

On 7/2/08, Jason Coco <[EMAIL PROTECTED]> 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 (Cocoa-dev@lists.apple.com)

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to