12 votes

iCal n'exécute plus les scripts ?

J'ai quelques tâches automatisées sous forme d'AppleScripts que je programmerais pour qu'elles s'exécutent pendant la nuit via un événement iCal. L'événement serait simplement réglé sur "exécuter script" à "0 minute avant l'événement" et je sélectionnerais les différents script à exécuter.

Depuis la mise à jour vers Mountain Lion, cependant, "exécuter script" est maintenant juste "ouvrir le fichier" et les script ne s'exécutent pas, ils s'ouvrent juste dans l'éditeur AppleScript.

J'ai essayé de compiler les scripts en applications pour voir si je pouvais les sélectionner pour les ouvrir à la place, mais ils ne sont pas disponibles pour être sélectionnés à partir de l'événement (ils sont grisés).

  1. Comment faire pour que Calendar exécute mes scripts ?
  2. Inversement, existe-t-il un meilleur moyen de programmer l'exécution des scripts ?

10voto

Bill Points 1408

J'ai écrit un réponse à une question sur la programmation des emplois qui pourrait résoudre quelques uns des problèmes pour vous. Mais c'était surtout pour une fois, pas pour un travail continu.

Si vous avez un travail en cours, comme celui que vous auriez programmé via iCal, launchd fonctionnera également très bien.

Mais si vous voulez un remplacement pur et simple de quelque chose de similaire à ce que vous avez fait avec iCal/Calendar, on dirait que Cet excellent article sur le forum de discussion d'Apple explique comment utiliser l'alarme de calendrier d'Automator. '. Un utilisateur a même déclaré que cette nouvelle méthode est encore plus facile à utiliser. Personnellement, je pense qu'avec la puissance supplémentaire d'Automator, elle apporte aussi une nouvelle puissance.

De ce site :

Voici une solution qui fonctionne pour moi :

  1. Dans Automator, créez une alarme de calendrier
  2. Sélectionnez Utilitaires dans le volet de la bibliothèque
  3. Sélectionnez et faites glisser Run AppleScript dans la zone de travail.
  4. Copiez/collez l'AppleScript dans le champ Exécuter AppleScript.
  5. Sauvegarder l'alarme de calendrier nouvellement créée
  6. Ouvrez Calendar.app, créez un nouvel événement
  7. Sélectionnez le calendrier Automator comme calendrier de référence
  8. Sélectionnez Ouvrir un fichier pour l'alerte, et sélectionnez le fichier que vous avez créé dans Automator. Par défaut, iCal est le fichier qui s'affiche lorsque vous sélectionnez Ouvrir un fichier.
  9. Remplacez ce nom par celui de l'application Automator que vous avez créée.
  10. Sélectionnez Autre si le nom du fichier n'est pas affiché.

enter image description here

L'utilisateur a également joint quelques captures d'écran à son message, mais j'ai inclus une capture d'écran de ce qui doit être sélectionné dans Automator.

4voto

Graham Miln Points 39606

Il semble qu'Apple n'ait pas repris la fonctionnalité "Run script" d'iCal à Calendar dans Mac OS X 10.8, alias Mountain Lion.

Vous pouvez programmer l'exécution d'applications sur Mac OS X de plusieurs façons.

Outils de programmation intégrés

La méthode préférée de programmation intégrée consiste à utiliser lancé sur le marché (démon de lancement). Pour utiliser launchd vous créez tickets de travail pour le lancement et les placer dans votre ~/Library/LaunchAgents/ dossier.

cron est disponible sur Mac OS X mais n'est plus recommandé. Cependant, il existe de nombreux programmes qui ne peuvent pas être représentés par le logiciel cron et non par launchd .

Apple documentation de launchd est un bon point de départ.

Outils de programmation tiers

Si vous souhaitez une interface graphique ou davantage de fonctionnalités, des applications tierces sont disponibles. Ma société développe Gestionnaire d'énergie ; d'autres solutions existent également.

0voto

Dave DuPlantis Points 3176

La réponse de jmlumpkin est parfaite, mais vous pouvez vous faciliter encore plus la tâche. Comme je l'ai décrit dans un article de blog vous n'avez pas besoin de copier et coller le script dans le nouveau flux de travail que vous créez. Vous pouvez appeler l'AppleScript original à partir de l'intérieur du flux de travail, à la place :

on run {input, parameters}

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

end run

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