>>On 2009 Jan, 07, at 22:46, Chunk 1978 wrote:
>>
>>>does this work with Dashboard?  it seems that dashboard is a
>>>background application that's always open...
>>
>>Well, obviously it does not.
>>
>>You'd need a NSWorkspaceDidActivateApplicationNotification, but it looks like 
>>there is no such thing.  You could periodically poll -[NSWorkspace 
>>activeApplication], but I hope someone has a 
better idea, because if you do I would not want your process running on my Mac.
>
>Today, the only solution seems to be to install a Carbon Event handler for the 
>{kEventClassApplication, kEventAppFrontSwitched} event.

Even better is to register for a Carbon Event handler for  
{kEventClassApplication, kEventAppLaunched} event. The user may switch the 
front application without launching an application. I think 
the OP intends to be notified upon an application launch only.

>
>Even if such a NSWorkspace notification were to appear in a future version of 
>Mac OS X, I'd be interested in a lower-level solution. I have a background 
>process that can't link to AppKit due to 
security restrictions, and Carbon Events have gone away for 64-bit processes.

This is not entirely true. There are a few APIs of the Carbon Event model who 
have been ported to 64-bit and have been made public in Leopard.
Examples:

InstallEventHandler
InstallEventLoopTimer
RegisterEventHotKey
ReleaseEvent

Examples of APIs which are not available to 64-bit applications:

QuitApplicationEventLoop
InstallStandardEventHandler
InstallEventLoopIdleTimer

I.e., APIs that are GUI-oriented are out, most APIs that provide core services 
are in.

So I guess the logic is: if you have an API in Cocoa, use it. If you don't, 
resort to Carbon Events that have been ported and retained for 64-bit 
applications.

HTH

Joao Varela


---- _______________________________________________

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 arch...@mail-archive.com

Reply via email to