12 votos

iCal ya no ejecuta scripts?

Tengo algunas tareas automatizadas en forma de AppleScripts que programaría para ejecutarse durante la noche a través de un evento de iCal. El evento simplemente se establecería como "ejecutar script" a "0 minutos antes del evento" y seleccionaría los distintos a ejecutar.

Sin embargo, desde la actualización a Mountain Lion, "ejecutar script" es ahora sólo "abrir archivo" y los no se ejecutan, sólo se abren en el Editor de AppleScript.

Intenté compilar los scripts en aplicaciones para ver si podía seleccionarlas para que se abrieran en su lugar, pero no están disponibles para seleccionarlas desde el evento (están en gris).

  1. ¿Cómo puedo hacer que Calendar ejecute mis scripts?
  2. A la inversa, ¿hay una forma mejor de programar la ejecución de los scripts?

10voto

Bill Puntos 1408

He escrito un respuesta a una pregunta sobre la programación de trabajos que podría resolver algunos de los problemas para usted. Eso fue sobre todo para una sola vez, aunque en lugar de en curso.

Si tienes un trabajo en curso, como uno que hayas programado a través de iCal, launchd también funcionará bien.

Pero si lo que quieres es un reemplazo total a algo similar a lo que hiciste con iCal/Calendar, parece que este estupendo artículo en el foro de discusiones de Apple explica el uso de la "Alarma del Calendario" de Automator '. Un usuario incluso dijo que esta nueva forma es aún más fácil de usar. Personalmente, creo que con la potencia adicional de Automator, también añade nueva potencia.

De ese sitio:

Esta es una solución que me funciona:

  1. En Automator, cree una alarma de calendario
  2. Seleccione Utilidades en el panel de la biblioteca
  3. Seleccione y arrastre Ejecutar AppleScript en el área de flujo de trabajo
  4. Copie/pegue el AppleScript en el cuadro Ejecutar AppleScript
  5. Guardar la nueva alarma de calendario creada
  6. Abre Calendar.app, crea un nuevo evento
  7. Seleccione el calendario de Automator como calendario de referencia
  8. Seleccione Abrir archivo para la alerta, y seleccione el archivo que creó en Automator. Por defecto, iCal es el archivo que aparece cuando se selecciona Abrir archivo.
  9. Cámbielo por el nombre de la aplicación de Automator que ha creado.
  10. Seleccione Otro si el nombre del archivo no se muestra.

enter image description here

El usuario adjuntó algunas capturas de pantalla a su post, así, pero he incluido una captura de pantalla de lo que debe ser seleccionado en Automator.

4voto

Steve Evans Puntos 155

Parece que Apple no ha trasladado la funcionalidad "Ejecutar script" de iCal a Calendario en Mac OS X 10.8, también conocido como Mountain Lion.

Puede programar aplicaciones para que se ejecuten en Mac OS X de varias maneras.

Herramientas de programación integradas

El método de programación integrado preferido es utilizar lanzamientod (demonio de lanzamiento). Para utilizar launchd usted crea boletos de trabajo de launchd y colocarlos en su ~/Library/LaunchAgents/ carpeta.

cron está disponible en Mac OS X pero ya no se recomienda. Sin embargo, hay muchos horarios que pueden ser representados por cron y no por launchd .

Apple's documentación de launchd es un buen punto de partida.

Herramientas de programación de terceros

Si quieres una interfaz gráfica o más funcionalidad, hay aplicaciones de terceros disponibles. Mi empresa desarrolla Gestor de energía Pero también existen otras soluciones.

0voto

Dave DuPlantis Puntos 3176

La respuesta de jmlumpkin es acertada, pero puedes hacerlo aún más fácil para ti. Como he descrito en una entrada del blog , no necesitas copiar y pegar el script en el nuevo flujo de trabajo que crees. En su lugar, puede llamar al AppleScript original desde dentro del flujo de trabajo:

on run {input, parameters}

    run script file "Macintosh HD:Some Directory On Disk:a cool script.applescript"

end run

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X