Actualización*
si usted hace un get info en el ~/Library/Preferences/com.apple.loginitems.plist archivo y marque la casilla de verificación bloquear.
![enter image description here]()
Los cambios No se escriben en el archivo. Para ello en el siguiente inicio de sesión no habrá incorporaciones.
Acabo de probar esto y funcionó. Pero no podemos garantizar que esto puede o puede no ser una buena cosa para hacer. Yo de mi yo se usar mi Respuesta a continuación.
Usted puede establecer un launchAgent para observar los cambios en el ~/Library/Preferences/com.apple.loginitems.archivo plist
En mi ejemplo yo uso un launchAgent mirar para el cambio y, a continuación, ejecutar un comando para que me avise. En este caso yo use el comando herramienta de growlnotify
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>loginItems</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/growlnotify</string>
<string>-n</string>
<string>login items change</string>
<string>-m</string>
<string>login items change</string>
<string>-s</string>
</array>
<key>WatchPaths</key>
<array>
<string>/Users/USERNAME/Library/Preferences/com.apple.loginitems.plist</string>
</array>
</dict>
</plist>
De hecho, me hizo esta usando lingon que tomar algunas de las molestias de hacer launchAgent.
El comando a ejecutar es :/usr/local/bin/growlnotify -n "login items change" -m "login items have been changed" -s
Nota: este es un simple ejemplo. Y usted debe recordar que cualquier cambio puede tardar un poco de tiempo para ser escrito en el plist. Pero mis pruebas han demostrado que funcione.