以编程方式安装OSX不会启动用户指定的应用程序

时间:2015-01-07 07:05:14

标签: macos cocoa diskarbitration cddvd

我使用磁盘仲裁框架来管理各种驱动器和磁盘。

我已注册回调函数DADiskAppearedCallbackDADiskDisappearCallback

对于USB驱动器,所有设备似乎都运行良好,但对于CD / DVD,我遇到了问题。

加载CD / DVD后,我已使用磁盘的BSDName卸载(DADiskUnmount())驱动器。 然后在对磁盘进行一些验证后,我再次使用BSDName挂载(DADiskMount())磁盘。

当我再次安装CD / DVD时,默认应用程序在

中设置
  

系统偏好 - >硬件 - > Cds& DVSS

未启动。

例如。对于视频DVD - 打开DVD播放器。 DVD播放器应该在这里推出。

请提供任何克服此问题的建议。

谢谢

我仍然在寻找解决方案,“SystemUIServer”管理应该在插入CD / DVD时挂载的应用程序。我可以在CD / DVD装载上触发该操作吗? 或者这是在CD / DVD装载上手动启动用户提供的应用程序的正确方法吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用NSWorkSpace进行搔痒

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSWorkspace_Class/index.html#//apple_ref/c/data/NSWorkspaceDidMountNotification

首先创建NSWorkspaceDidMountNotification类型的NSNotification

请务必根据需要设置userInfo字典KVP。 (在NSWorkspace文档中)

最后,将通知发布到工作区通知中心 [NSWorkspace notificationCenter]

我怀疑这可能是诀窍。

修改的 这似乎没有诀窍