Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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 OSX以编程方式安装DVD不会启动用户指定的应用程序_Macos_Cocoa_Diskarbitration_Cddvd - Fatal编程技术网

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

Macos OSX以编程方式安装DVD不会启动用户指定的应用程序,macos,cocoa,diskarbitration,cddvd,Macos,Cocoa,Diskarbitration,Cddvd,我使用磁盘仲裁框架来管理各种驱动器和磁盘 我已经注册了回调函数dadiskapearedcallback和DADiskDisappearCallback 对于usb驱动器来说,一切似乎都能完美工作,但对于CD/DVD,我面临着这个问题 加载CD/DVD后,我使用磁盘的BSDName卸载驱动器(DADiskUnmount())。 然后在对磁盘进行一些验证之后,我使用BSDName再次装载(DADiskMount())磁盘 当我再次装入CD/DVD时,默认应用程序设置为 系统首选项->硬件->CD和

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

我已经注册了回调函数
dadiskapearedcallback
DADiskDisappearCallback

对于usb驱动器来说,一切似乎都能完美工作,但对于CD/DVD,我面临着这个问题

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

当我再次装入CD/DVD时,默认应用程序设置为

系统首选项->硬件->CD和DVS

没有得到发射

例如,对于视频DVD-打开DVD播放机。 DVD播放机应该在这里发布

我如何克服这个问题

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

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

首先创建NSWorkspaceDidMountNotification类型的NSNotification

确保根据需要设置userInfo字典KVPs。(在NSWorkspace文档中)

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

我怀疑这可能是个骗局

编辑
这似乎不起作用

当您没有截获装载时,与以编程方式装载后的输出相比,
mount
命令的输出是什么?特别是,是否有重要的装载选项?如果是这样,您可能需要使用
DADiskMountWithArguments()
,以便传递这些参数。另外,如果您使用
umount
/
mount
或磁盘实用程序卸载并重新装载卷,是否会启动用户指定的应用程序?