Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何在OS X上启动相关应用程序?_Macos_Launching Application - Fatal编程技术网

Macos 如何在OS X上启动相关应用程序?

Macos 如何在OS X上启动相关应用程序?,macos,launching-application,Macos,Launching Application,一个应用程序在另一个应用程序启动后可以启动的编程机制是什么 例如,在启动iTunes时,Last.fm桌面也会启动 或者这只是一个替换某种“批处理文件”的问题 注意:OSX新手。没有指定依赖应用程序的标准方法。所以,你需要以某种方式观察系统。你不必主动投票;你需要使用一些系统机制来告诉你 要监视GUI应用程序的启动,您需要编写一个后台应用程序,通过以下方式获取NSWorkspace的通知中心 NSNotificationCenter* nc=[[NSWorkspace sharedWorkspa

一个应用程序在另一个应用程序启动后可以启动的编程机制是什么

例如,在启动iTunes时,Last.fm桌面也会启动

或者这只是一个替换某种“批处理文件”的问题


注意: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上添加信息。