Puedes hacerlo estableciendo tu propio parámetro por defecto, para almacenar el valor entre usos/reinicios, etc., de lo contrario un Applescript no recordará su estado actual de activación.
Este es un ejemplo rápido que establecerá un parámetro definido por el usuario [reemplace con el nombre real de la compañía y/o del producto y el nombre del parámetro memorable si tiene uno, de lo contrario los datos del ejemplo funcionarán bien] y luego sólo dirá en voz alta, 'sí' o 'no' dependiendo del estado del interruptor del parámetro por defecto.
Puedes ejecutarlo desde el script abierto o guardarlo como una aplicación.
set newTestParameter to "YES"
try
set oldTestParameter to do shell script "defaults read com.myCo.myApp myParamSet"
if oldTestParameter is in {"1", "YES"} then
set newTestParameter to "NO"
end if
end try
do shell script "defaults write com.myCo.myApp myParamSet " & newTestParameter
--your actual code, dependant on above switch
if newTestParameter is in {"1", "YES"} then
say "Yes"
-- run thisCode
else
say "No"
-- run thatCode
end if
La primera vez que se ejecute escribirá un nuevo archivo en ~/Library/Preferences
llamado com.myCo.myApp.plist
& contendrá un parámetro, con el estado actual de su conmutador, así
<?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>myParamSet</key>
<string>NO</string>
</dict>
</plist>
No necesitas hacer nada para 'mantener' esto por tu cuenta, simplemente puedes seguir enviando su nuevo valor con cada ejecución de script.