Applescript rilevare nuove unità
-
18-09-2019 - |
Domanda
Ho un'applicazione studio di AppleScript che uso per i dischi rigidi di imaging. In questo momento viene eseguito uno script di shell (lista diskutil -plist) per ottenere informazioni circa le unità collegate al computer, si presenta quindi queste informazioni per l'utente, e viene selezionato l'unità corretta per l'immagine.
Idealmente Vorrei che la mia applicazione per essere in grado di rilevare quando nuovi dispositivi sono collegati, e richiede all'utente di immagine che guidano.
Stavo pensando di eseguire lo script di shell in un ciclo e confrontando i risultati di rilevare se un nuovo dispositivo è disponibile, ma che sembra che sarebbe sprecare un sacco di CPU. C'è qualche modo per AppleScript per ascoltare una sorta di evento e rilevare che un nuovo dispositivo è disponibile?
Soluzione
AppleScript (Studio) non è in grado di registrare ad ogni notifica di sistema, le notifiche possono essere realizzate esclusivamente in Objective-C. Tra l'altro DiskArbitration.framework è molto più veloce di diskutil.
Un'alternativa potrebbe essere un'azione cartella o un agente di launchd che osserva / Volumes. Ma è abbastanza tortuoso per passare le informazioni per l'applicazione principale
Spero che questo aiuti