2015-01-07 4 views
6

Ich habe Disk-Arbitration-Framework für die Verwaltung verschiedener Laufwerke und Festplatten verwendet.OSX-Mounting DVD startet programmatisch keine benutzerdefinierte Anwendung

Ich habe Rückruffunktionen DADiskAppearedCallback und DADiskDisappearCallback registriert.

Für die USB-Laufwerke scheint alles perfekt zu funktionieren, aber für die CD/DVD bin ich mit dem Problem konfrontiert.

Nachdem CD/DVD geladen wurde, habe ich das Laufwerk unmount (DADiskUnmount()) mit BSDName der Festplatte. Dann nach einigen Überprüfung der Festplatte mounte ich (DADiskMount()) die Festplatte wieder mit BSDName.

Wenn ich CD/DVD wieder montieren, stellen Sie die Standardanwendung in dem

System Bevorzugungs-> Hardware-> Cds & DVSs

nicht Start zu bekommen.

Für z. Für Video-DVD - Öffnen Sie den DVD-Player. Hier sollte DVD-Player gestartet werden.

Bitte geben Sie alle Vorschläge an, um dieses Problem zu lösen.

Danke

ich noch für die Lösung bin auf der Suche über kam „SystemUIServer“ verwaltet die Anwendung, die beim Einlegen von CD/DVD-Halterung sollte. Kann ich diese Aktion auf dem CD/DVD-Laufwerk auslösen? Oder ist dies die richtige Methode, um die von Benutzern bereitgestellte Anwendung manuell auf CD/DVD-Mount zu starten?

+0

zu tun Was ist der Ausgang des 'mount' Befehls, wenn Sie die Halterung nicht abfangen im Vergleich zum Ausgang, nachdem Sie es programmatisch montiert haben? Gibt es insbesondere wichtige Mount-Optionen? Wenn dies der Fall ist, müssen Sie möglicherweise 'DADiskMountWithArguments()' verwenden, damit Sie diese übergeben können. Wenn Sie das Volume mithilfe des Befehls 'umount' /' mount' oder des Festplatten-Dienstprogramms aushängen und neu mounten, wird die benutzerdefinierte App gestartet. –

Antwort

1

Sie könnten versuchen, es mit NSWorkSpace

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

Erstellen Sie zunächst eine NSNotification vom Typ kitzeln NSWorkspaceDidMountNotification

unbedingt die userinfo Wörterbuch KVPs entsprechend einzustellen. (In der NSWorkspace docs)

Schließlich schreiben die Mitteilung an den Arbeitsbereich Notification Center [NSWorkspace notificationCenter]

Ich vermute, dass der Trick sein könnte.

EDIT Dies scheint nicht den Trick

+0

danke @uchuugaka für Ihre Zeit, aber kein Erfolg mit diesem. –