AppleScript détecter les nouveaux lecteurs
-
18-09-2019 - |
Question
J'ai une application studio AppleScript que j'utilise pour les disques durs d'imagerie. À l'heure actuelle, il exécute un script shell (liste diskutil de -plist) pour obtenir des informations sur les lecteurs connectés à l'ordinateur, il présente ensuite ces informations à l'utilisateur, et le lecteur approprié à l'image est sélectionnée.
Idéalement, je voudrais que ma demande de pouvoir détecter de nouveaux périphériques sont branchés, et invite l'utilisateur à l'image ce lecteur.
Je pensais à l'exécution du script shell dans une boucle et en comparant les résultats pour détecter si un nouveau périphérique est disponible, mais cela semble comme cela perdre beaucoup de CPU. Y at-il someway pour AppleScript pour écouter une sorte d'événement et de détecter qu'un nouveau périphérique est disponible?
La solution
AppleScript (Studio) n'est pas en mesure d'enregistrer toute notification du système, les notifications ne peuvent être accomplies en Objective-C. Soit dit en passant DiskArbitration.framework est beaucoup plus rapide que diskutil.
Une alternative pourrait être une action de dossier ou d'un agent qui observe launchd / Volumes. Mais il est tout à fait tortueuse de transmettre les informations à l'application principale
Hope this helps