5 votes

Comment afficher une notification lorsque la webcam iSIght s'allume ?

Est-il possible d'obtenir une notification sur le bureau lorsque mon iSight s'allume ? Ce serait optimal si cela pouvait passer par Growl, mais j'ai essayé HardwareGrowler et il ne me donne pas de notification.

Je sais que le feu vert toujours s'allume lorsque l'iSight s'allume, mais lorsque l'iSight s'allume juste une seconde, il est possible que je ne regarde pas l'écran et que je manque la lumière verte, donc une notification qui reste sur l'écran jusqu'à ce que je le ferme serait optimale.

Je suis sur un MacBook Pro 5,3 et j'ai Mountain Lion 10.8.3.

0 votes

Je suppose que le pilote iSight est consulté à chaque fois. En supposant que atime soit activé sur votre système de fichiers (c'est le cas par défaut), vous pouvez vérifier la date du dernier accès à ce pilote de la manière suivante : ls -lu /System/Library/Quicktime/QuickTimeUSBVDCDigitizer.component‌​/Contents/MacOS/Quic‌​kTimeUSBVDCDigitizer | awk '{print $6,$7,$8}' . Ecrivez un script combinant cela avec growlnotify et faites le tourner en arrière plan. Et voilà !

1 votes

J'ai copié-collé la ligne de code dans le terminal et j'ai obtenu : No such file or directory

0 votes

@BartArondson Comme c'est une commande très longue, il y a quelques problèmes de formatage lors de la copie. Donc, soit vous naviguez manuellement vers ce répertoire et exécutez ls -lu ou copier la commande entière depuis aquí . Je vais essayer de trouver une solution fonctionnant avec Growl, mais ne vous attendez pas à ce que cela arrive aujourd'hui. Peut-être que quelqu'un d'autre est plus rapide que moi...

2voto

gentmatt Points 46446

Avec l'aide de Growl documentation sur le support AppleScript et une petite discussion avec Bart Arondson y Elliot B dans le commentaires sur la question, j'ai créé l'AppleScript suivant.

J'ai sauvegardé ce script en tant qu'agent d'application que vous pouvez ajouter à vos éléments de connexion en Préférences système → Utilisateurs et groupes → Éléments de connexion .

En gros, cette application fonctionne en détectant si un exécutable unique lié à l'utilisation de la caméra est consulté. Chaque fois que l'exécutable est accédé, l'application le notifie à Growl :

enter image description here

Télécharger

Il est important de savoir que ce script contrôle l'accès à l'exécutable...

/System/Library/Frameworks/CoreMediaIO.framework/Versions/A/Resources/VDC.plugin/Contents/MacOS/VDC

script complet

-- 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

0 votes

Ah, je me suis réjoui trop tôt. Citrix Viewer, un client de bureau à distance, accède aussi à la VDC lors de son ouverture. C'est logique car il peut avoir besoin d'accéder à la caméra, mais cela rend cette solution moins parfaite.

0 votes

@BartArondson C'est dommage. J'espère qu'un développeur mac bien informé tombera sur cette question et sera en mesure d'améliorer la réponse à l'avenir.

0voto

Saaru Lindestøkke Points 5124

Micro Snitch fait exactement ce que je cherchais :

Vous êtes-vous déjà demandé si une application enregistrait de l'audio via le microphone intégré de votre Mac à votre insu ? Ou si la caméra capture des vidéos sans raison valable ?

Avec Micro Snitch, il n'y a plus de doute. Cette application ultra-légère de barre de menu fonctionne discrètement en arrière-plan. Elle surveille et signale toute activité du microphone et de la caméra pour vous aider à déterminer si quelqu'un vous espionne.

Il n'est pas gratuit (4,50 € au moment de la rédaction de cet article), mais je pense qu'il vaut bien son prix.

Aucune affiliation, juste un utilisateur heureux.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X