Macos 如何在OS X上启动相关应用程序?
一个应用程序在另一个应用程序启动后可以启动的编程机制是什么 例如,在启动iTunes时,Last.fm桌面也会启动 或者这只是一个替换某种“批处理文件”的问题Macos 如何在OS X上启动相关应用程序?,macos,launching-application,Macos,Launching Application,一个应用程序在另一个应用程序启动后可以启动的编程机制是什么 例如,在启动iTunes时,Last.fm桌面也会启动 或者这只是一个替换某种“批处理文件”的问题 注意:OSX新手。没有指定依赖应用程序的标准方法。所以,你需要以某种方式观察系统。你不必主动投票;你需要使用一些系统机制来告诉你 要监视GUI应用程序的启动,您需要编写一个后台应用程序,通过以下方式获取NSWorkspace的通知中心 NSNotificationCenter* nc=[[NSWorkspace sharedWorkspa
注意:OSX新手。没有指定依赖应用程序的标准方法。所以,你需要以某种方式观察系统。你不必主动投票;你需要使用一些系统机制来告诉你 要监视GUI应用程序的启动,您需要编写一个后台应用程序,通过以下方式获取NSWorkspace的通知中心
NSNotificationCenter* nc=[[NSWorkspace sharedWorkspace] notificationCenter];
并查看NSWorkspaceDidLaunchApplicationNotification。看
要监视非GUI应用程序的启动,您需要使用kqueue
。(这是BSD功能。)请参阅。通常,您必须观察launchd
到fork
或execve
过程。请注意,有多个launchd
进程,一个用于root用户,另一个用于每个登录用户
在任何情况下,您都需要自动启动您编写的后台应用程序。有很多方法可以做到这一点
要查看要更改的文件或目录,可以使用launchd
代理。看
顺便说一下:官方的
Last.fm
应用程序在首次发布时,在~/Library/iTunes/iTunes插件中安装了AudioScrobbler.bundle
。iTunes在启动时读取所有插件,然后该插件启动Last.fm应用程序。这是一种相当粗俗、不可容忍的界面用法,因为插件是为可视化工具设计的。看 我无法从您所指的手册页中找出如何执行此操作。你能详细介绍一下这个吗?但是“last.fm”的简写是+1!啊,很抱歉把混乱的信息launchd
代理可以监视目录中新文件的出现,但不能监视新应用的启动。您可以使用kqueue
,但这不是一种优雅的方式。。。我会在kqueue上添加信息。