我想在 iTunes 加载时启动我的 OSX 应用程序,而不需要后台进程来监控 iTunes 何时启动。last.fm 客户端似乎是这样做的;当 iTunes 关闭时,我找不到任何后台进程,但是一旦它启动,last.fm 应用程序就会随之打开。也许它正在使用某种可以启动另一个进程的 iTunes 插件?
使用后台进程执行此操作似乎相当简单,但我想在没有后台进程的情况下执行此操作,因此我的程序不使用系统资源。
使用后台进程的一种选择是使用 NSWorkspace 的通知中心,例如:
[[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self selector:@selector(appDidLaunch:) name:NSWorkspaceDidLaunchApplicationNotification object:nil]
但是,这显然需要一个后台进程。我发现的另一个选择是使用 ProcessNotif,如下所示:
ProcessNotif *x = [[ProcessNotif new] autorelease];
[x setProcessName: @"iTunes"];
[x setTarget: self];
[x setAction: @selector(doStuff)];
[x start];
这可能比 NSWorkspace 方法更不理想,而且它也需要一个后台进程。
那么,有没有什么方法可以在启动时从 iTunes启动,不需要后台进程?
谢谢!