Archives actuelles avec moteur de recherche
N'hésitez pas à vous inscrire à la liste : http://listes.patpro.net/mailman/listinfo/applescript_fr

Apple, AppleScript, AppleScript Studio, AppleTalk, AppleWorks, ColorSync, Finder, HyperCard, iBook, iLife, iMac, iWork, Keynote, Mac, Macintosh, Mac OS, Pages, Panther, PowerBook, Power Mac, Power Macintosh, QuickTime, Safari, Tiger, Xcode sont des marques déposées par Apple Computer, Inc., enregistrées aux Etats-Unis et dans les autres pays. Liste officielle

De : (Liste AppleScript francophone) <applescript_fr@xxxxxxx.net>
À : "(Liste AppleScript francophone)" <applescript_fr@xxxxxxx.net>
Date : mercredi 20 février 2002 06:00
Objet : applescript_fr Digest #428

        Liste AppleScript francophone Digest #428

 1) test
    by Nicolas Barbulesco <nico.barbulesco@xxxxxxx.fr>
 2) test
    by Nicolas Barbulesco <nico.barbulesco@xxxxxxx.fr>
 3) Re: test
    by patpro <patpro@xxxxxxx.net>
 4) test3
    by Nicolas Barbulesco <nico.barbulesco@xxxxxxx.fr>
 5) Re: test3
    by Nicolas Barbulesco <nico.barbulesco@xxxxxxx.fr>
 6) Truc bizarre dans AppleScript
    by Nicolas Barbulesco <nico.barbulesco@xxxxxxx.fr>
 7) Re: Truc bizarre dans AppleScript
    by patpro <patpro@xxxxxxx.net>
 8) Changer l'icone d'un dossier
    by "Christophe Delb@rt" <delbart.c@xxxxxxx.apple.com>
 9) Re: Changer l'icone d'un dossier
    by Jean-Marie Hoornaert <jean.marie.hoornaert@xxxxxxx.be>
10) Re: Truc bizarre dans AppleScript
    by Daniel Varlet <varlet@xxxxxxx.ch>
11) Re: Truc bizarre dans AppleScript
    by Nicolas Barbulesco <nbarbulesco@xxxxxxx.fr>
12) Re: Truc bizarre dans AppleScript
    by Nicolas Barbulesco <nbarbulesco@xxxxxxx.fr>
13) Effacer l'icône personnalisée d'un fichier
    by Nicolas Barbulesco <nbarbulesco@xxxxxxx.fr>
14) Re: Truc bizarre dans AppleScript
    by Daniel Varlet <varlet@xxxxxxx.ch>
15) Re: Truc bizarre dans AppleScript
    by Daniel Varlet <varlet@xxxxxxx.ch>






De : Nicolas Barbulesco <nico.barbulesco@xxxxxxx.fr> Date : Tue, 19 Feb 2002 13:13:50 +0100 Objet : [AS] test test2

De : Nicolas Barbulesco <nico.barbulesco@xxxxxxx.fr> Date : Tue, 19 Feb 2002 13:06:38 +0100 Objet : [AS] test test

De : patpro <patpro@xxxxxxx.net> Date : Tue, 19 Feb 2002 13:41:10 +0100 Objet : [AS] Re: test le 19/02/02 13:06, Nicolas Barbulesco à nico.barbulesco@xxxxxxx.fr a écrit : > test hum... Nicolas ? c'est il me semble le deuxieme test de toi qui passe sur la liste, tu ne les reçois pas ? patpro

De : Nicolas Barbulesco <nico.barbulesco@xxxxxxx.fr> Date : Tue, 19 Feb 2002 14:31:05 +0100 Objet : [AS] test3 test3

De : Nicolas Barbulesco <nico.barbulesco@xxxxxxx.fr> Date : Tue, 19 Feb 2002 14:35:09 +0100 Objet : [AS] Re: test3 Sorry ! C'est bon, maintenant ça marche !

De : Nicolas Barbulesco <nico.barbulesco@xxxxxxx.fr> Date : Tue, 19 Feb 2002 14:40:37 +0100 Objet : [AS] Truc bizarre dans AppleScript Bonjour, Suite à de nombreux bogues dans mes scripts, j'ai fini par trouver le problème. Avec ce script : set a to 4 set b to carre(a) display dialog b on carre(x)     return x * x end carre 'y a pa de problème, il me dit 16. Par contre avec : tell application "Finder"     activate     set a to 4     set b to carre(a) end tell on carre(x)     return x * x end carre il me dit "Finder a généré une erreur : application "Finder" ne comprend pas le message carre.". C'est embêtant, parce que les scripts utilisent souvent le Finder, et je voudrais opérer par exemple sur la liste des fichiers d'un dossier... Pendant que j'y suis, je me suis toujours demandé pourquoi : set a to 10 incr(a) display dialog a on incr(t)     set t to t + 1 end incr disait 10 et non 11 ! Une dernière question, après lecture du cours AppleScript de Patpro : à quoi sert le mot-clé get ? Merci ! Nico

De : patpro <patpro@xxxxxxx.net> Date : Tue, 19 Feb 2002 15:06:18 +0100 Objet : [AS] Re: Truc bizarre dans AppleScript le 19/02/02 14:40, Nicolas Barbulesco à nico.barbulesco@xxxxxxx.fr a écrit : > Par contre avec : > tell application "Finder" >     activate >     set a to 4 >     set b to carre(a) > end tell > on carre(x) >     return x * x > end carre > > il me dit "Finder a généré une erreur : application "Finder" ne comprend > pas le message carre.". normal, tel que c'est écrit il pense que carre() est une fonction du Finder, alors que c'est une fonction de ton script. Ton script s'appelle lui même pour cette fonction, donc tu dois lui préciser : [...]     set b to carre(a) of me [...] et ca marche :) > set a to 10 > incr(a) > display dialog a > on incr(t) >     set t to t + 1 > end incr > > disait 10 et non 11 ! tout simplement parce que tu ne touche pas a "a" :-) tu calcules a+1 mais tu ne colles pas le résultat dans ta variable "a" ensuite. regarde : [script hop!] set a to 10 set a to incr(a) -- tadaaam display dialog a on incr(t) set t to t + 1 end incr [/script] > Une dernière question, après lecture du cours AppleScript de Patpro : à > quoi sert le mot-clé get ? heu... quel contexte ? patpro

De : "Christophe Delb@rt" <delbart.c@xxxxxxx.apple.com> Date : Tue, 19 Feb 2002 17:21:33 +0100 Objet : [AS] Changer l'icone d'un dossier Bonjour à tous.. tout d'abord merci à daniel pour la précieuse aide pour la fonction "mount volume" Voici une uatre question : est-il possible avec applescript de modifier l'icone d'un dossier. Exemple : soit un nouveau dossier A. Suivant le nom que choisi l'utilisateur il faudra lui mettre l'icone 1, 2, 3, 4 ou 5. Ces icones sont sur des dossiers s'appelant simplement 1, 2, 3, 4 ou 5. Comment faire donc pour que le dossier créé prennent une de ces icones. Merci d'avance Christophe

De : Jean-Marie Hoornaert <jean.marie.hoornaert@xxxxxxx.be> Date : Tue, 19 Feb 2002 17:33:02 +0100 Objet : [AS] Re: Changer l'icone d'un dossier le 19/02/02 17:21, Christophe Delb@rt a ecrit : > est-il possible avec applescript de modifier l'icone d'un dossier. > Exemple : soit un nouveau dossier A. Suivant le nom que choisi > l'utilisateur il faudra lui mettre l'icone 1, 2, 3, 4 ou 5. Ces icones > sont sur des dossiers s'appelant simplement 1, 2, 3, 4 ou 5. Comment > faire donc pour que le dossier créé prennent une de ces icones. Une partie du script, celle qui dit au dossier a de "prendre" l'icone du dossier b : [SCRIPT] set a to choose folder set b to choose folder tell application "Finder" set icon of a to icon of b end tell [/SCRIPT] -- Cordialement. Jean-Marie -HOO;-) ____________________ Courriel : jean.marie.hoornaert@xxxxxxx.be PPsP* : http://www.h2o.be Newsletter : jmh@xxxxxxx.be?subject=Infos_h2o * Page Personnelle sans Prétention * pour AppleScripter FileMaker

De : Daniel Varlet <varlet@xxxxxxx.ch> Date : Tue, 19 Feb 2002 18:30:26 +0100 Objet : [AS] Re: Truc bizarre dans AppleScript À 14:40 +0100 le 19.02.2002, Nicolas Barbulesco écrivait au sujet de "[AS] Truc bizarre dans AppleScript" : > Bonjour, test bonjour... ;-) > Suite à de nombreux bogues dans mes scripts, j'ai fini par trouver le > problème. > > Avec ce script : > > set a to 4 > set b to carre(a) > display dialog b > on carre(x) >     return x * x > end carre > > 'y a pa de problème, il me dit 16. > > Par contre avec : > tell application "Finder" >     activate >     set a to 4 >     set b to carre(a) > end tell > on carre(x) >     return x * x > end carre > > il me dit "Finder a généré une erreur : application "Finder" ne comprend > pas le message carre.". C'est embêtant, parce que les scripts utilisent > souvent le Finder, et je voudrais opérer par exemple sur la liste des > fichiers d'un dossier... Un tell précise la cible des commandes. Ici le Finder cherche la routine carre() qui lui appartiendrait... Dans les tell, il faut préciser à qui appartient la routine. Et de temps en temps les commandes... pour les routines/commandes qui appartiennent au script courant (principal) : 'my' ou 'of me' ou tell me to .... Je crois qu'on s'est tous fait avoir un jour avec ça ;-)))) donc : tell application "Finder"     activate set a to 4 set b to my carre(a) end tell > Pendant que j'y suis, je me suis toujours demandé pourquoi : > > set a to 10 > incr(a) > display dialog a > on incr(t) >     set t to t + 1 > end incr > > disait 10 et non 11 ! Tu as tout simplement oublié de redéfinir a ;-))) ou de définir 't' en global/property avec display dialog t sans global/prop : [SCRIPT sans globale] set a to 10 set a to incr(a) display dialog a on incr(t) return t + 1 end incr [/SCRIPT] avec global/prop : [SCRIPT avec globale] global t set a to 10 incr(a) display dialog t on incr(n) set t to n + 1 end incr [/SCRIPT] > Une dernière question, après lecture du cours AppleScript de Patpro : à > quoi sert le mot-clé get ? Un avant-goût du tome 2 du Guide AS fr qui ne devrait plus trop tarder (je ne mets pas tout, car c'est très chiant à reformater les copies texte d'Acrobat Reader ) : ---------------------------------------- Get La commande “Get” peut fonctionner comme une commande AppleScript ou comme une commande d’application. La commande AppleScript retourne la valeur d’une expression. La commande d’application retourne la valeur d’un objet. Dans les deux cas, la commande assigne la valeur retournée à la variable prédéfinie result, cette variable est décrite dans “ Utiliser la variable prédéfinie result “ page 21. [...] Notes Le mot get de la commande “Get” est optionnel, car AppleScript obtient automatiquement la valeur des expressions et des références quand elles apparaissent dans les scripts. Par exemple, les instructions suivantes sont équivalentes : item 1 of {"Salut,", "comment", "allez", "vous ?" } --résultat : "Salut," get item 1 of {"Salut,", "comment", "allez", "vous ?" } --résultat : "Salut," Les instructions suivantes sont aussi équivalentes : tell application "AppleWorks" word 1 of text body of document "Introduction" end tell tell application "AppleWorks" get word 1 of text body of document "Introduction" end tell ---------------------------------------- A+ -- Daniel

De : Nicolas Barbulesco <nbarbulesco@xxxxxxx.fr> Date : Tue, 19 Feb 2002 21:08:14 +0100 (CET) Objet : [AS] Re: Truc bizarre dans AppleScript Merci, je comprends mieux !   ;-) --- patpro <patpro@xxxxxxx.net> a écrit : > le 19/02/02 14:40, Nicolas Barbulesco à > nico.barbulesco@xxxxxxx.fr a écrit : > > > Par contre avec : > > tell application "Finder" > >     activate > >     set a to 4 > >     set b to carre(a) > > end tell > > on carre(x) > >     return x * x > > end carre > > > > il me dit "Finder a généré une erreur : > application "Finder" ne comprend > > pas le message carre.". > > normal, tel que c'est écrit il pense que carre() est > une fonction du Finder, > alors que c'est une fonction de ton script. Ton > script s'appelle lui même > pour cette fonction, donc tu dois lui préciser : > > [...] >     set b to carre(a) of me > [...] > > et ca marche :) Oui, ça marche, cool ! C'est étrange, comme écriture ; "me", c'est le script ? Ça ressemble à de la programmation fonctionnelle... Le script existe en tant que "valeur", en tant qu'"objet" ? On peut changer "me" ? Ce serait excellent, on pourrait faire des espèces de scripts qui se modifieraient eux-mêmes, donc un système qui se maintiendrait tout seul ! En cas de bogues identifiés, le script modifierait lui-même son code... > > set a to 10 > > incr(a) > > display dialog a > > on incr(t) > >     set t to t + 1 > > end incr > > > > disait 10 et non 11 ! > > tout simplement parce que tu ne touche pas a "a" :-) > tu calcules a+1 mais tu ne colles pas le résultat > dans ta variable "a" > ensuite. > > regarde : > > [script hop!] > set a to 10 > set a to incr(a) -- tadaaam > display dialog a > on incr(t) > set t to t + 1 > end incr > [/script] En effet. Dois-je comprendre (j'avais pas du tout pensé à ça) que les routines en AppleScript sont toutes des fonctions (= qui renvoient une valeur) et que les procédures n'existent pas ? A ce moment-là, toute routine renvoie une valeur, et quand il n'y a pas de return il est sous-entendu, la routine renvoyant alors le dernier résultat ? Dans ton exemple, ce n'est alors pas le set t to t+1 qui est important, mais le résultat t+1 ; tu aurais alors pu mettre set maVariableQuiSertARien to t+1, ou même t+1 tout court ? > > Une dernière question, après lecture du cours > AppleScript de Patpro : à > > quoi sert le mot-clé get ? > > heu... quel contexte ? <citation> On voit par cet exemple que les routines peuvent être appelées comme n‚importe quelle fonction : set MaVariable to Circonf(12) get Circonf(MonChiffre * 3) En plus, une routine peut s‚appeler elle même ! </citation> > patpro Merci ! @+ Nico ___________________________________________________________ Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français ! Yahoo! Mail : http://fr.mail.yahoo.com

De : Nicolas Barbulesco <nbarbulesco@xxxxxxx.fr> Date : Tue, 19 Feb 2002 21:27:23 +0100 (CET) Objet : [AS] Re: Truc bizarre dans AppleScript > Un tell précise la cible des commandes. Ici le > Finder cherche la routine carre() qui lui > appartiendrait... > Dans les tell, il faut préciser à qui appartient la > routine. Et de temps en temps les commandes... > pour les routines/commandes qui appartiennent au > script courant (principal) : 'my' ou 'of me' > ou tell me to .... > > Je crois qu'on s'est tous fait avoir un jour avec ça > ;-)))) > > donc : > tell application "Finder" >     activate > set a to 4 > set b to my carre(a) > end tell D'accord, je me ferai plus avoir !     ;-) On fait tell me to set b to carre(a) et c'est bon. > sans global/prop : > > [SCRIPT sans globale] > set a to 10 > set a to incr(a) > display dialog a > > on incr(t) > return t + 1 > end incr > [/SCRIPT] > > avec global/prop : > > [SCRIPT avec globale] > global t > > set a to 10 > incr(a) > display dialog t > > on incr(n) > set t to n + 1 > end incr > [/SCRIPT] D'accord. Donc une routine peut pas directement modifier des variables. C'est forcément une fonction qui renvoie une valeur, et c'est la valeur renvoyée qu'on utilise ? > > Une dernière question, après lecture du cours > AppleScript de Patpro : à > > quoi sert le mot-clé get ? > > Un avant-goût du tome 2 du Guide AS fr qui ne > devrait plus trop tarder (je ne mets pas tout, car > c'est très chiant à reformater les copies texte > d'Acrobat Reader ) : > > ---------------------------------------- > Get > > La commande 3Get2 peut fonctionner comme une > commande AppleScript ou > comme une commande d1application. La commande > AppleScript retourne la > valeur d1une expression. La commande d1application > retourne la valeur d1un > objet. Dans les deux cas, la commande assigne la > valeur retournée à la > variable prédéfinie result, cette variable est > décrite dans 3 Utiliser la variable > prédéfinie result 3 page 21. > > [...] > > Notes > > Le mot get de la commande 3Get2 est optionnel, car > AppleScript obtient > automatiquement la valeur des expressions et des > références quand elles > apparaissent dans les scripts. > > Par exemple, les instructions suivantes sont > équivalentes : > > item 1 of {"Salut,", "comment", "allez", "vous ?" } > --résultat : "Salut," > get item 1 of {"Salut,", "comment", "allez", "vous > ?" } > --résultat : "Salut," > > Les instructions suivantes sont aussi équivalentes : > > tell application "AppleWorks" > word 1 of text body of document "Introduction" > end tell > > tell application "AppleWorks" > get word 1 of text body of document "Introduction" > end tell > ---------------------------------------- Merci, donc get c'est pour mettre à jour l'espèce de tampon result présent en permanence et qui contient le résultat de la dernière instruction. J'avais déjà remarqué qu'on pouvait faire sur une ligne 5 ou "toto" ou (a = b) sans aucune instruction. En fait c'est get 5 pour mettre 5 dans le résultat. Merci ! @+ Nico ___________________________________________________________ Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français ! Yahoo! Mail : http://fr.mail.yahoo.com

De : Nicolas Barbulesco <nbarbulesco@xxxxxxx.fr> Date : Tue, 19 Feb 2002 22:19:23 +0100 (CET) Objet : [AS] Effacer l'icône personnalisée d'un fichier Est-ce qu'il y a une façon pour effacer l'icône personnalisée d'un fichier (comme quand on appuie sur Efface dans la fenêtre Infos) ? Par exemple l'aperçu de l'image pour une image... Merci ! Nico ___________________________________________________________ Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français ! Yahoo! Mail : http://fr.mail.yahoo.com

De : Daniel Varlet <varlet@xxxxxxx.ch> Date : Wed, 20 Feb 2002 02:42:26 +0100 Objet : [AS] Re: Truc bizarre dans AppleScript À 21:27 +0100 le 19.02.2002, Nicolas Barbulesco écrivait au sujet de "[AS] Re: Truc bizarre dans AppleScript" : [...] >> tell application "Finder" >>     activate >> set a to 4 >> set b to my carre(a) >> end tell > > D'accord, je me ferai plus avoir !     ;-) > On fait tell me to set b to carre(a) et c'est bon. Plus courant d'employer of me ou my pour une routine mais bon... [...] > D'accord. Donc une routine peut pas directement > modifier des variables. C'est forcément une fonction > qui renvoie une valeur, et c'est la valeur renvoyée > qu'on utilise ? Une routine peut modifier une variable, bien sur. Les locales (valables uniquement dans celle-ci) et les globales/propriétés. > Merci, donc get c'est pour mettre à jour l'espèce de > tampon result présent en permanence et qui contient le > résultat de la dernière instruction. J'avais déjà > remarqué qu'on pouvait faire sur une ligne 5 ou "toto" > ou (a = b) sans aucune instruction. En fait c'est get > 5 pour mettre 5 dans le résultat. Pas uniquement. Ça peut servir de test : set f to "Disque:dossier:fichier" try [get] f as alias on error etc... end try Si erreur, result est non définie et de toute façon ne sert pas dans ce cas . A+ -- Daniel

De : Daniel Varlet <varlet@xxxxxxx.ch> Date : Wed, 20 Feb 2002 02:44:25 +0100 Objet : [AS] Re: Truc bizarre dans AppleScript À 21:08 +0100 le 19.02.2002, Nicolas Barbulesco écrivait au sujet de "[AS] Re: Truc bizarre dans AppleScript" : [...] > > Oui, ça marche, cool ! C'est étrange, comme écriture ; > "me", c'est le script ? Ça ressemble à de la > programmation fonctionnelle... Le script existe en > tant que "valeur", en tant qu'"objet" ? Absolument. [SCRIPT] script totor property nb_blabla:0 on blabla() display dialog "j'suis totor" set nb_blabla to nb_blabla +1 end end tell totor to blabla() nb_blabla of totor [/SCRIPT] > On peut > changer "me" ? essayes ;-)) mais il faut préciser que my /of me appelle la routine du script courant dans le cas bien particulier d'un tell. --- extrait de la bible ;-) If you need to call a subroutine from within a Tell statement, you must use the reserved words of me or my to indicate that the subroutine is part of the script (not a command that should be sent to the object of the Tell statement). --- Carrément... il faut (you must...) ;-))) Dans d'autres cas, ça appelle l'application courante (celle qui gère le script)... Mais bon, j'ai l'impression de compliquer... >Ce serait excellent, on pourrait faire > des espèces de scripts qui se modifieraient eux-mêmes, > donc un système qui se maintiendrait tout seul ! En > cas de bogues identifiés, le script modifierait > lui-même son code... Oui... Mais là je pense qu'il plus simple de corriger les bogues directement;-))) Tu peux automatiser l'écriture de scripts et les compiler. C'est ** un peu** l'idée mise en pratique par Laurent Sebilleau il y a quelques temps... [...] > > En effet. Dois-je comprendre (j'avais pas du tout > pensé à ça) que les routines en AppleScript sont > toutes des fonctions (= qui renvoient une valeur) et > que les procédures n'existent pas ? A ce moment-là, > toute routine renvoie une valeur, et quand il n'y a > pas de return il est sous-entendu, la routine > renvoyant alors le dernier résultat ? Dans ton > exemple, ce n'est alors pas le set t to t+1 qui est > important, mais le résultat t+1 ; tu aurais alors pu > mettre set maVariableQuiSertARien to t+1, ou même t+1 > tout court ? Non, non, une routine peut absolument faire autre chose. Par exemple capter des events venus d'ailleurs (que du script principal, [no xfiles here, quoique...]). par exemple : on idle on quit on open etc... un dernier pour la route : [SCRIPT] property p : "" on run repeat 2 routine() end routine2() get p end on routine() set p to p & "do" return "rien du tout" end on routine2() set p to "C'est l'heure du " & p return "rien du tout" end [/SCRIPT] Voilà très rapidemment . A+ -- Daniel