Débutant en AppleScript

Warflo

Membre expert
Club iGen
13 Août 2005
1 486
127
24
Marseille
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:

Bloc de code:
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:

Bloc de code:
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
 
Bonjour, et bienvenue dans le petit monde des AS (AppleScriptuers) :)

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

Bloc de code:
tell application "iTunes"
**activate
end tell

Normalement ça devrait marcher (pas testé)... ;)
 
Merci
Et est-ce que cela reglera mon prodbléme de end run?
Merci d'avance
War
 
Il y a beaucoup de faurtes dans ton script.
Voici le corrigé:
Bloc de code:
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
Bloc de code:
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!

;)
 
  • J’aime
Réactions: molgow
C'est vraiment pas mal pour debuter :D

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

Ce n'est peut etre pas possib' ??
 
meskh a dit:
C'est vraiment pas mal pour debuter :D

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

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.

@+
 
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
 
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.

@+
 
Question complémentaire... est-il possible de faire afficher une image en fond de fenêtre de dialogue?

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

j'ai essayé
play sound "chemin d'accès:son1.aif"

mias j'ai une erreur lorsque je lance le script "erreur end of file"
 
r e m y a dit:
Question complémentaire... est-il possible de faire afficher une image en fond de fenêtre de dialogue?

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

j'ai essayé
play sound "chemin d'accès:son1.aif"

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

Bonjour

Pour sonoriser un bouton moi j'utilise beep

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

J'ai fait un test avec un fichier son, ç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électionné
tell application "Finder" to open file ("Chemin complet du fichier (en : non en / UNIX))
display dialog "Navigateur sélectionné: " & choix buttons {"OK"} default button 1 with icon 1
end if

Il faudrais tester avec les sons du sytè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çer une image en fond je ne sait pas ( je croie pas cela possible, cette fenêtre est trop simplifiée).

Par contre les icônes 0, 1 et 2 d'alerte sont plus les mêmes sous 10.4.2, 3D oblige

@+.
 
oui j'ai essayé
open file "chemin d'accès du fichier son"

mais ça ouvre QUIcktime PLayer pour jouer le son....

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

Sous OS X j'espérais que c'était aussi possible en choississant des sons au même format que les sons système (aiff), mais ç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é à l'atteinte de le fin de fichier.

Bon je continue de chercher....
 
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....

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

Sous OS X j'espérais que c'était aussi possible en choississant des sons au même format que les sons système (aiff), mais ç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é à l'atteinte de le fin de fichier.

Bon je continue de chercher....

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.

@+