2014-01-20 43 views
0

我想強制在Cocoa中彈出驅動器。我發現如下的方式:是否有辦法強制在Cocoa彈出驅動器

  1. 我將使用命令彈出驅動器:hdiutil eject -force /Volumes/TRAVELDRIVE
  2. 然後,我將通過使用NSTask執行從可可應用程序這個命令端子。

我可以通過使用上述步驟來做到這一點嗎?如果你有最好的解決方案,請給我任何想法。提前致謝。

+0

你試過了嗎?你做了什麼事? –

回答

0

你可以嘗試BSD的API,即

打開設備(fd = open("/dev/disk1", O_RDONLY))

和發送彈出ioctl它。請看/usr/include/dev/disk.h

這可能彈出的設備雖然沒有卸載量第一,這會使事情不一致的狀態...

* Source...

+0

謝謝,我會查看信息。 – user3214941

+0

我可以再問你一件事嗎?在MAC OS上,我可以設置權限或執行任何操作來阻止用戶的應用程序?我的意思是我想拒絕正常用戶(不是管理員)刪除我的應用程序。我可以那樣做嗎? – user3214941

0

使用I/O Kit的或POSIX API或NSTask或AppleScript的。 沒有提供Objective-C API。

+0

非常感謝。你可以示例代碼?沒事的。 – user3214941

+0

Applescript將在沙盒應用程序中失敗。和NSTask ...如何彈出,你說沒有API可用,然後該怎麼處理這個類? –

+0

他們都可以包裝管理卷的CLI工具。 – uchuugaka

相關問題