Con la ayuda de Gruñido de la documentación acerca de la compatibilidad con AppleScript y una pequeña discusión con Bart Arondson y Elliot B en los comentarios a la pregunta que me he encontrado con el siguiente AppleScript.
He guardado esta secuencia de comandos como una aplicación agente que puede añadir a sus elementos de inicio de sesión en Preferencias del Sistema → Usuarios Y Grupos → Elementos de inicio de Sesión.
Básicamente, esta aplicación funciona mediante la detección de si un único ejecutable relacionados con el uso de la cámara es la que se accede. Cada vez que el ejecutable se accede, la aplicación le notificará acerca de ello a Gruñir:
Es importante saber que esta secuencia de comandos de los monitores de acceso al archivo ejecutable...
/System/Library/Frameworks/CoreMediaIO.framework/Versions/A/Resources/VDC.plugin/Contents/MacOS/VDC
Completo script
-- check if growl is running in order to avoid the "Choose Application" dialog
tell application "System Events"
set isRunning to (count of (every process whose bundle identifier is "com.Growl.GrowlHelperApp")) > 0
end tell
-- store time of last iSight access
global lastopened
set lastopened to do shell script "ls -lu /System/Library/Frameworks/CoreMediaIO.framework/Versions/A/Resources/VDC.plugin/Contents/MacOS/VDC | awk '{print $6,$7,$8}'"
-- make the application ready for use with growl
if isRunning then
tell application id "com.Growl.GrowlHelperApp"
-- make a list of all the notification types that this script will ever send
set the allNotificationsList to ¬
{"iSight access monitor"}
-- register the script with growl
register as application ¬
"iSight access monitor" all notifications allNotificationsList ¬
default notifications allNotificationsList ¬
icon of application "FaceTime"
-- send the first notification right after the application is started
notify with name ¬
"iSight access monitor" title ¬
"iSight access monitor" description ¬
"last iSight access:
" & lastopened application name "iSight access monitor"
end tell
end if
-- monitoring routine: checks every 10s if the VDC executable has been accessed
on idle
tell application id "com.Growl.GrowlHelperApp"
set newopen to do shell script "ls -lu /System/Library/Frameworks/CoreMediaIO.framework/Versions/A/Resources/VDC.plugin/Contents/MacOS/VDC | awk '{print $6,$7,$8}'"
if (newopen is not equal to lastopened) then
notify with name ¬
"iSight access monitor" title ¬
"iSight access monitor" description ¬
"new iSight access:
" & newopen application name "iSight access monitor"
set lastopened to newopen
end if
end tell
return 10 -- interval in seconds
end idle