# Débutant en AppleScript



## Warflo (8 Septembre 2005)

Hello!
J'ai débuté sur AppleScript ce matin(!) pour faire une mini-application qui me demande lorsque je lance mon ordi ce que je veux faire:


```
on run
    display dialog "Bonjour , que veux tu faire aujourd'hui?" buttons {"Aller sur Msn", "Écouter de la musique"}
    if the button returned of the result is "Aller sur Msn" then
        tell application "aMSN"
            open
        end tell
    else
        tell application "iTunes"
            open
        end tell
    end if
end run
```
J'ai commencé par un truc tout simple avec deux choix qui marche bien , sauf que lorsque je lance iTunes il me dise;Erreus dans iTunes:Impossible de rendre les données du type attendue.Bon , sa ne semble pas altérer ce que je faisais , alors je n'en ai pas pris compte.
Après , lorsque j'ai voulu rajouter un troisiéme choix , j'ai fait:


```
on run
    display dialog "Bonjour , que veux tu faire aujourd'hui?" buttons {"Aller sur Msn", "Écouter de la musique","Aller sur Internet"}
    if the button returned of the result is "Aller sur Msn" then
        tell application "aMSN"
            open
        end tell
    if the button returned of the result is "Écouter de la muisque" then
        tell application "iTunes"
            open
        end tell
        if the button returned of the result is "Aller sur internet" then
        tell application "Safari"
        open
        end tell
    end if
end run
```
Là , il me dise:fin de ligne, etc. prévu mais trouvé nom de commande.
End run n'est plus valable , alors qu'il l'était avant?Éclairez moi s'il vous plait je ne compren plus rien...
War


----------



## FredoMkb (8 Septembre 2005)

Bonjour, et bienvenue dans le petit monde des AS (AppleScriptuers) 

Essais la commande "activate" à la place de "open", de cette manière :


```
tell application "iTunes"
**activate
end tell
```

Normalement ça devrait marcher (pas testé)...


----------



## Warflo (9 Septembre 2005)

Merci
Et est-ce que cela reglera mon prodbléme de end run?
Merci d'avance
War


----------



## zeRafioScripter (10 Septembre 2005)

Il y a beaucoup de faurtes dans ton script.
Voici le corrigé:

```
on run
	display dialog "Bonjour , que veux tu faire aujourd'hui?" buttons {"Aller sur Msn", "Écouter de la musique", "Aller sur Internet"}
	if the button returned of the result is "Aller sur Msn" then
		tell application "Msn" to activate
	else if the button returned of the result is "Écouter de la musique" then
		tell application "iTunes" to activate
	else if the button returned of the result is "Aller sur internet" then
		tell application "Safari" to activate
	end if
end run
```

Pour aller plus loin, tu peux mettre le résultat de ton dialogue dans une *variable* 

```
on run
	set maReponse to button returned of (display dialog "Bonjour , que veux tu faire aujourd'hui?" buttons {"Aller sur Msn", "Écouter de la musique", "Aller sur Internet"})
	if maReponse is "Aller sur Msn" then
		tell application "Msn" to activate
	else if maReponse is "Écouter de la musique" then
		tell application "iTunes" to activate
	else if maReponse is "Aller sur internet" then
		tell application "Safari" to activate
	end if
end run
```

Si tu as besoin d'explications, n'hésites pas!


----------



## meskh (11 Septembre 2005)

C'est vraiment pas mal pour debuter   

J'ai essayé d'y ajouter une 4èmè variable, mais il me colle erreur de script   

Ce n'est peut etre pas possib' ??


----------



## ceslinstinct (11 Septembre 2005)

meskh a dit:
			
		

> C'est vraiment pas mal pour debuter
> 
> J'ai essayé d'y ajouter une 4èmè variable, mais il me colle erreur de script
> 
> Ce n'est peut etre pas possib' ??



Bonjour

Si ta question et d'ajouter un 4 ème bouton c'est NON.
Trois boutons maximum dans un display dialog.

Il faut alors un display dialog en liste pour sélectionner un nom sur une ligne.

@+


----------



## Warflo (23 Septembre 2005)

Merci!Je vais tester sa tout de suite , mais AS bug pour le moment mais bon.
Sinon , comment faire un Frame sur AS?
merci
War


----------



## ceslinstinct (25 Septembre 2005)

Warflo a dit:
			
		

> Merci!Je vais tester sa tout de suite , mais AS bug pour le moment mais bon.
> Sinon , comment faire un Frame sur AS?
> merci
> War



Bonjour

Un exemple, j'ai besoin de 12 boutons dans un AppleScript.

J'utilise une liste avec un item de mon choix déjà sélectionné.


property noms_Navigateurs : {"Camino", "Firefox", "iCab", "Internet Explorer", "iSurf", "Mozilla", "Netscape", "Omniweb", "Opera", "Safari", "Shiira", "SunriseBrowser"}

set nom to choose from list noms_Navigateurs with prompt "Quel navigateur à ouvrir:" default items {"Safari"} OK button name "OK" cancel button name "Quitter"
set choix to the result
if choix is not false then -- C'est pas le bouton "Quitter" sélectionné
display dialog "Navigateur sélectionné: " & choix buttons {"OK"} default button 1 with icon 1
end if


Ecrit sous OS 10.3.9 à tester avec l'éditeur de script.
Ne peut être utilisé tel qu'il est écrit, car vue que ce sont des applications les noms des variables doivent avoir .app pour pouvoir être ouvertes "Safari.app".

C'est un entrait de mon script (modifié et incomplet) qui permet de sélectionner un navigateur sans a le chercher dans le dossier application.
Cette façon de faire me permet d'avoir plus de 3 boutons.

@+


----------



## r e m y (10 Octobre 2005)

Question compl&#233;mentaire... est-il possible de faire afficher une image en fond de fen&#234;tre de dialogue?

Autre quetsion, toujours pour rendre cette fen&#234;tre de saisie plus sympa, comment sonoriser l'appui sur les boutons?

j'ai essay&#233;
play sound "chemin d'acc&#232;s:son1.aif"

mias j'ai une erreur lorsque je lance le script "erreur end of file"


----------



## ceslinstinct (11 Octobre 2005)

r e m y a dit:
			
		

> Question compl&#233;mentaire... est-il possible de faire afficher une image en fond de fen&#234;tre de dialogue?
> 
> Autre quetsion, toujours pour rendre cette fen&#234;tre de saisie plus sympa, comment sonoriser l'appui sur les boutons?
> 
> ...



Bonjour

Pour sonoriser un bouton moi j'utilise beep

if choix is not false then -- C'est pas le bouton "Quitter" s&#233;lectionn&#233;
beep -- ou Beep 2 ou Beep 3	
	display dialog "Navigateur s&#233;lectionn&#233;: " & choix buttons {"OK"} default button 1 with icon 1
end if

J'ai fait un test avec un fichier son, &#231;a marche mais suivant l'extension il ouvre l'application qui peut le jouer.

if choix is not false then -- C'est pas le bouton "Quitter" s&#233;lectionn&#233;
	tell application "Finder" to open file ("Chemin complet du fichier (en : non en / UNIX))
	display dialog "Navigateur s&#233;lectionn&#233;: " & choix buttons {"OK"} default button 1 with icon 1
end if

Il faudrais tester avec les sons du syt&#232;me, mais je ne sais pas ou ils se trouvent sous 10.3.9 ou 10.4.2 car je ne les utilisent jamais.

Si tu peut me dire ou ils se trouvent je ferais un test.

Pour pla&#231;er une image en fond je ne sait pas ( je croie pas cela possible, cette fen&#234;tre est trop simplifi&#233;e).

Par contre les ic&#244;nes 0, 1 et 2 d'alerte sont plus les m&#234;mes sous 10.4.2, 3D oblige

@+.


----------



## r e m y (11 Octobre 2005)

oui j'ai essay&#233;
open file "chemin d'acc&#232;s du fichier son"

mais &#231;a ouvre QUIcktime PLayer pour jouer le son....

Sous Mac OS 9 et ant&#233;rieur, un play sound "chemin d'acc&#232;s du fichier son" permettait de jouer directement le son d&#232;s lors que c'&#233;tait un son au format "son syst&#232;me"

Sous OS X j'esp&#233;rais que c'&#233;tait aussi possible en choississant des sons au m&#234;me format que les sons syst&#232;me (aiff), mais &#231;a ne fonctionne pas.

Ce qui est curieux c'est qu'il ne se plaint pas d'une erreur de syntaxe de la commande play sound, mais une erreur li&#233; &#224; l'atteinte de le fin de fichier.

Bon je continue de chercher....


----------



## ceslinstinct (11 Octobre 2005)

r e m y a dit:
			
		

> oui j'ai essayé
> open file "chemin d'accès du fichier son"
> 
> mais ça ouvre QUIcktime PLayer pour jouer le son....
> ...



Bonsoir

Sous système 9 il y avait plusieurs extensions pour les sons suivant les logiciels (Système, Jeux, etc...)

Sous Mac OS X il doit y avoir un ou plusieurs petits fichiers suivant le son à utiliser.

J'ai regardé les fichiers cachés des grosses applications et elles ont toutes des sons à divers format.
Elles n'ouvrent pas les logiciels de sons même si les extentions sont identiquent.

Je vais étudier le dossier Developper, il doit sent doute donner des explications.

Le plus simple pour comprendre (pour moi) c'est de faire une petite Applis en Applescrip Studio car il y a 14 sons en AIFF, donc utilisable.

@+


----------

