SUJET: Ouvrir un fichier à l'ouverture d'un dossier QUESTION: bonjour. j'aimerais faire en sorte qu'un fichier son se declenche a l'ouvertured'un dossier mais etant un incapable notoire en programation je ne suis pas parvenu a ecrire un script de dossier pour cette fonction a priori plutot simple. pouvez vous m'envoyer un exemple d'un tel script? merci ps: je suis sous OS 8,6 anesthesistes polyclinique REPONSE: Pour qu'un script se déclenche à l'ouverture d'un dossier, la formule magique est du type : on opening folder This_Folder, avec This_folder qui contient le chemin d'accès complet au dossier. Pour ouvrir un fichier c'est du type : tell application "Finder" open file Chemin_Fileend tell avec Chemin_File du type : "sound" of folder "sound folder" of startup disk ce qui nous donne le script suivant : on opening folder This_Folder tell application "Finder" open file "sound" of folder "sound folder" of startup disk end tell end opening folder On attache le script au dossier par un Ctrl sur le dossier.
SUJET: Automatiser une connexion ADSL QUESTION: j'ai un problème dans un script il vise a automatiser la connexion adsl à l'allumage du mac on run with timeout of 9999 seconds tell application "Lan TunnelBuider Settings" connect Wanadoo tell application "Netscape Communicatorô" to run end tell end timeout end run il coince à connect! je suis un grand débutant!!! alors soyez magnanimes jml REPONSE: Personnellement je n'ai pas d'adsl, je n'habite pas au bon endroit ! donc je ne pourrais pas tester le script. A la première lecture ce script ne peut pas fonctionner tel que. Je vais énumérer les points qui ne vont pas, dans l'ordre de leur apparition : - un script AppleScript fonction sur ce que l'on appelle des AppleEvent. Ce sont des messages qui sont envoyés à une application, messages qui demandent une réponse. Le temps que l'application a pour répondre est de l'ordre de la seconde. Ce qui est trop court dans certains cas, tel qu'ici pour une connexion à Internet. C'est pourquoi on emploie une structure "with timeout", qui permet de spécifier un temps pour la réponse de l'application. Ici la structure est juste, je descendrai simplement le temps de réponse à 5 minutes (300 seconds) qui me semble largement suffisant. - un script est lu ligne par ligne, chaque ligne doit contenir la phrase en entier. La phrase : tell application "Lan TunnelBuilder Settings" n'est pas correct, car elle n'est pas sur la même ligne. Il faut donc la corriger en : tell application "Lan TunnelBuilder Setting". Lors d'une phrase trop longue et pour des questions de lisibilité, il est possible de couper une ligne. Dans ce cas il faut employer un caractère spéciale : ¬ Ce caractère s'obtient par un option-retour chariot, et indique à AppleScript que les lignes n'en font qu'une. - Est-ce que "Wanadoo" fait parti du dictionnaire de "Lan TunnelBuider Settings" ? Si oui, alors c'est correct, sinon il faut expliquer à "Lan TunnelBuider Settings" ce que veut dire "Wanadoo". - AppleScript travaille avec une application dans la structure tell application "Nom de l'application" ... end tell Si dans cette application on envoi un appel à une autre application, cela revient à demander à la première application de travailler avec la seconde. Ce qui n'est pas le cas ici. Il faut donc sortir le tell application "Netscape Communicatorô" to run de la structure tell application "Lan TunnelBuider Settings" .. end tell Ce qui nous donne: tell application "Lan TunnelBuider Settings" .. end tell tell application "Netscape Communicatorô" .. end tell Donc après ces corrections de syntaxes cela nous donne : on run with timeout of 300 seconds tell application "Lan TunnelBuider Settings" connect wanadoo end tell end timeout tell application "Netscape Communicatorô" run end tell end run Je pense que "connect wanadoo" n'est pas suffisant. [...] Au lieu de: "connect wanadoo" il faut mettre: connect using configuration "Wanadoo" en supposant que votre configuration Remote Access s'appelle "Wanadoo", sinon mettre le nom de votre configuration pour une connexion "PPP".
SUJET: Traitement d'un fichier lorsqu'il est mis dans un dossier QUESTION: bonjour, je m'appelle olivier et je cherche quelqu'un qui pourrait me donner un coup de main pour m'aider a faire un script de dossier. je veux faire un truc tout bête mais j'ai des difficultés. L'objectif de ce script est que lorsque l'on met un fichier pdf dans un dossier, le logiciel acrobat s'ouvre et exporte le fichier en eps. merci de votre aide olivier REPONSE: La phrase magique pour un ajout d'élément dans un dossier ouvert c'est : on adding folder items to My_Folder after receiving My_Fichiers Faire attention que ce n'est valable que si la fenêtre du dossier est ouverte. Sinon il ne se passe rien. My_Folder contient l'adresse du dossier, My_Fichiers contient l'adresse du ou des fichiers introduits dans le dossier My_Folder. Dans le cas présent il ne faut traiter que les fichiers de type "PDF ", signature des fichiers d'Acrobat (les lettres PDF, plus un espace : "PDF ", une signature a toujours 4 lettres). Pour connaître la signature d'un fichier : file type of (info for The_File) avec The_file de type : alias "Disque:Mon fichier" Pour la suite, malheureusement, il ne m'est pas possible de décrire ce qu'il faut faire pour ouvrir un fichier sous Acrobat, et encore moins pour l'enregistrer au format EPS: je ne possède que le reader d'Acrobat. Donc pour le début, cela nous donne un truc du genre : on adding folder items to My_Folder after receiving My_Fichiers repeat with m in My_Fichiers set The_type to file type of (info for m) if The_type is "PDF " then tell application "Acrobat" -- ici traitement du fichier par Acrobat end tell end if end repeat end adding folder items to Pour attacher un script à un dossier, faire un Ctrl-clic sur celui-ci. |  |  |  | - SUJET :
- Quitter automatiquement toutes les applications, sans enregistrer les documents et éteindre le Mac.
-
- QUESTION :
- Bonjour,
- je cherche un script me permettant de qui de fermer les documents en cours en registrant les modif et quitter toutes les appli sauf le finder.
- tout ça automatiquement à une heure donnée.
- merci d'avance
- thomas
-
- REPONSE :
- Bonjour,
- Pour lancer un script à une heure donnée, vous avez le programme
- iDo Script Scheduler 1.0
- livré sur les cds système MacOs 8.6 et MacOs 9, ou directement sur le site (650 Ko):
- http://applescript.pratique.online.fr/divers/iDoScriptS
- http://www.sophisticated.com
-
- Pour quitter tous les programmes la formule est du type:
- tell application "Finder"
- set Mes_Appli to name of (every application process whose visible is true)
- end tell
- repeat with m in Mes_Appli
- tell application m to quit
- end repeat
-
- Par contre pour que les documents soient enregistrés à la fermeture de l'application, il faut le faire application par application :
- Tell application "Untel"
- close whit save yes
- end tell
- avec la phrase : "close whit save yes" propre à chaque application, qui est fournie par le dictionnaire de chaque application.
- Si une application n'est pas AppleScriptable, il n'y a pas de solution.
- Le script nous donne :
- tell application "Finder"
- set Mes_Appli to name of (every application process whose visible is true)
- end tell
- repeat with m in Mes_Appli
- if m is "Appli1" then
- tell application m
- close all document whit save yes
- quit
- end tell
- else if m is "Appli2" then
- tell application m
- quit with save
- end tell
- -- etc, autant de fois qu'il peut y avoir d'applis
- end if
- end repeat
-
- QUESTION (suite) :
- Tu a bien compris que mon problème reste en effet de fermer et sauver les fichiers ouverts sans avoir à toucher à la machine.
-
- Cependant , je reviens vers toi pour savoir s'il n'y a vraiment aucune solution à mon problème
- ...
- La liste des applis principales à quitter est:
-
- Photoshop
- Xpress
- Illustrator
- Suitecase
- Outlook 98
- Word
- excel
-
- La majorité des docs ne sont pas à sauvegarder (sinon le user l'aurait fait)il faut donc juste quitter l'appli sans enregistrer les doc en cours, cela nous évite le prob des fichiers sans titre à batiser et à caser (faut pas charier de trop ....).
-
- Concernant la phase d'enregistrement du fichier lorsque l'on quitte c'est soit ne pas enregistrer soit non mais si tu as la syntaxe en apple script je remplacerais les mots exacte.
- Sinon, concernant ce point, si tu as les commandes pour faire du "clavier virtuel" la solution serait
-
- Pomme W = non
- Pomme Q
-
- et l'affaire est dans le sac .... peut un peu simplet mais bon pourquoi pas????
-
- Merci encore pour ton attention
-
- cordialement
-
- Thomas
-
- REPONSE (SUITE) :
- Il existe une solution en utilisant FaceSpan, pour cela il me faudrait quelques renseignements complémentaires:
- 1°) La liste des applications à quitter
- 2°) Le nom du boutton, par application, qui permet l'enregistrement s'il y a lieu ("Enregistrer", "Ok" etc)
- 3°) Est-ce qu'il peut y avoir des documents où il faut en plus définir sous quel nom et à quel endroit il faut l'enregistrer (dans le cas de nouveaux documents) ?
- ...
- Je n'ai pas fais un test sur toutes les applis de la liste, il est possible qu'une ne réponde pas, dans ce cas me signaler laquelle et le mot qui correspond à "Ne pas enregister".
- C'est un script brut de pomme, faire des tests avant de le laisser fonctionner tout seul...
- Ce script fonctionne avec trois éléments :
- - "Quitte tout", le programme proprement dit qui quitte toutes les applications et éteint l'ordinateur. Ce script applicatif est écrit avec FaceSpan.
- - "Quitte tout.scp", un script qui n'a qu'une action : lancer "Quitte tout".
- Pour lancer "Quitte tout" à une heure donnée, j'utilise le troisième élément : "iDo Script Scheduler". Ce programme permet de paramétrer le lancement d'un script à une heure donnée.
- "iDo Script Scheduler" se trouve sur les cds de MacOs 8.6 et 9.0 ou sur le site :
- http://www.sophisticated.com
- Fonctionnement :
- - mettre "Quitte tout" et "Quitte tout.scp" n'importe où, mais ensemble.
- - depuis "iDo Script Scheduler", paramétrer "Quitte tout.scp" pour qu'il se lance à une heure donnée, à des jours données.
-
- On peut changer le nom de "Quitte tout.scp" mais pas celui de "Quitte tout", sinon le programme risque de se fermer lui-même en cours d'exécution.
- => quitte tout.sit (436 Ko)
- => iDo Script Scheduler
-
- SUJET :
- Eviter l'erreur : "Délais dépassé pour un Apple Event"
-
- QUESTION :
- Je voulais dire :
- Par contre, je sais que pour les délais d'Apple Events il faut un OSAX mais je ne souhaite pas les utiliser. Alors quand j'appelle le script Synchro Icônes depuis Synchro Dossiers, n'y a t-il vraiment pas moyen de quitter le script appelant ? car à chaque fois (ou presque, dès que le dossier est volumineux) il y a une erreur "Délais dépassé pour un Apple Event"
-
- REPONSE :
- Il existe deux solutions :
- - soit on a besoin de la reponse de l'appelé
- - soit on en a rien à faire
-
- Par défaut Applescript attend une réponse à tout Apple Event envoyé, réponse dans un laps de temps donné : 1 minute.
- Ce temps de réponse peut être controlé par la syntaxe suivante (soit pour diminuer ce temps, soit pour l'augmenter):
- with timeout of 5 seconds
- tell application "AppleWorks"
- close front document saving ask
- end tell
- end timeout
-
- Il est possible d'éliminer complètement ce temps de réponse, dans ce cas tout envoie d'Apple Event à une application n'attend aucune réponse de la part de cette application :
- ignoring application responses
- tell application "AppleWorks"
- close front document saving ask
- end tell
- end ignoring
-
- Le danger de cette syntaxe, c'est que l'on a aucun moyen de savoir si l'application a bien reçu et exécuté la commande envoyée. Par contre c'est un moyen pour accélérer l'exécution d'un script : une des raisons de la lenteur d' AppleScript c'est justement ces temps de réponses, qui bien souvent peuvent être supprimés. AppleScript passe plus de temps à attendre quelque chose qu'à exécuter du code.
|