objective-c – 在Cocoa中添加进程的观察者

objective-c – 在Cocoa中添加进程的观察者,第1张

概述我正在为iTunes开发一种插件. 许多用户已经请求,如果他们启动iTunes,他们想要启动插件,这当然是有意义的.但是,我不知道该怎么做. 我想到了一个帮助应用程序,这可能是唯一的方法. 唯一困扰我的是如何获得通知. 当然,我可以不断检查iTunes是否正在运行,但我不确定这是否是正确的方法. 我宁愿添加我的应用程序作为该过程的观察者. 那可能吗? 如果没有,Activity Monitor如何 我正在为iTunes开发一种插件.

许多用户已经请求,如果他们启动iTunes,他们想要启动插件,这当然是有意义的.但是,我不知道该怎么做.

我想到了一个帮助应用程序,这可能是唯一的方法.
唯一困扰我的是如何获得通知.
当然,我可以不断检查iTunes是否正在运行,但我不确定这是否是正确的方法.

我宁愿添加我的应用程序作为该过程的观察者.
那可能吗?

如果没有,Activity Monitor如何做到这一点?

感谢Daij-Djan!我得到它像这样工作:

- (voID)applicationDIDFinishLaunching:(NSNotification *)aNotification{    [[[NSWorkspace shareDWorkspace] notificationCenter] addobserver:self                                                           selector:@selector(iTunesLaunched:)                                                               name:NSWorkspaceDIDLaunchApplicationNotification                                                             object:nil];    [[[NSWorkspace shareDWorkspace] notificationCenter] addobserver:self                                                           selector:@selector(iTunesTerminated:)                                                               name:NSWorkspaceDIDTerminateApplicationNotification                                                             object:nil];}-(voID) iTunesLaunched:(NSNotification *)notification {    NSRunningApplication *runApp = [[notification userInfo] valueForKey:@"NSWorkspaceApplicationKey"];    if ([runApp.bundleIDentifIEr isEqualToString:@"com.apple.iTunes"])        NSLog(@"start");}-(voID) iTunesTerminated:(NSNotification *)notification {    NSRunningApplication *runApp = [[notification userInfo] valueForKey:@"NSWorkspaceApplicationKey"];    if ([runApp.bundleIDentifIEr isEqualToString:@"com.apple.iTunes"])        NSLog(@"terminate");}
解决方法 注册NSWorkspace通知:
NSWorkspaceDIDLaunchApplicationNotification
NSWorkspaceDIDTerminateApplicationNotification

见https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSWorkspace_Class/Reference/Reference.html

KVO还有可能运行runningApplications属性btw cocoatech有一个很好的NTRunningAppManager类就可以做到这一点

总结

以上是内存溢出为你收集整理的objective-c – 在Cocoa中添加进程的观察者全部内容,希望文章能够帮你解决objective-c – 在Cocoa中添加进程的观察者所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1002091.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存