# Applescript display temporisé



## plusdego (13 Décembre 2007)

Bonjour,


je débute en Applescript et je souhaiterais afficher un message type dialog ou alert qui disparaisse au bout d'une seconde sans action de l'utilisateur.

Quelqu'un peut-il m'aider ?

Merci d'avance,


Julien


----------



## zacromatafalgar (13 Décembre 2007)

Salut,

Rajoute "giving up after 1" à la fin du "display dialog"


----------



## plusdego (13 Décembre 2007)

zacromatafalgar a dit:


> Salut,
> 
> Rajoute "giving up after 1" à la fin du "display dialog"



super !!! j'ai un autre souci: j'appelle cette boite de dialogue depuis Mail. Par contre, c'est le finder qui saute sur place dans le dock et je dois le sélectionner pour voir la boîte de dialogue. 

J'ai essayé :
tell application mail to display dialog "Accusé activé" giving up after 1
mais sans succès !!

Il y a-t-il une solution ?

Amicalement,

Julien


----------



## zacromatafalgar (13 Décembre 2007)

Si tu pouvais mettre plus de code  cela simplifierait les choses car chez moi le bout de code ci-dessus n'appelle pas le Finder


----------



## plusdego (13 Décembre 2007)

zacromatafalgar a dit:


> Si tu pouvais mettre plus de code  cela simplifierait les choses car chez moi le bout de code ci-dessus n'appelle pas le Finder



Voici donc le code qui doit me permettre de gérer l'activation et la desactivation des accusé de réception dans Mail...


```
tell application "Finder"
    set fileNames to list folder "Macintosh HD:Users:juliendelprat:Library:Scripts"
    if fileNames contains "Activer l'accusé.scpt" then
        do shell script "defaults delete com.apple.mail UserHeaders"
        set name of document file "Activer l'accusé.scpt" of folder "Scripts" of folder "Library" of folder "juliendelprat" of folder "Users" of disk "Macintosh HD" to "Désactiver l'accusé.scpt"
        display dialog "Accusé activé" giving up after 1
    else
        if fileNames contains "Désactiver l'accusé.scpt" then
            do shell script "defaults write com.apple.mail UserHeaders '{\"Disposition-Notification-To\" = \"julien.delprat@o-tomat.com\"; }'"
            set name of document file "Désactiver l'accusé.scpt" of folder "Scripts" of folder "Library" of folder "juliendelprat" of folder "Users" of disk "Macintosh HD" to "Activer l'accusé.scpt"
            display dialog "Accusé desactivé" giving up after 1
        else
            display dialog "Erreur : l'accusé de réception n'a pas été modifié"
        end if
    end if
end tell
```


----------



## zacromatafalgar (13 Décembre 2007)

Le problème est que l'affichage est demandé au sein du bloc tell application Finder

Le code suivant devrait fonctionner :


```
on run
	
	set active to "/Users/juliendelprat/Library/Scripts/Activer l'accusé.scpt"
	set desactive to "/Users/juliendelprat/Library/Scripts/Désactiver l'accusé.scpt"
	set theFile to ((POSIX file active) as Unicode text)
	
	tell application "Finder" to set thisFile to exists file theFile
	try
		if thisFile then
			do shell script "defaults delete com.apple.mail UserHeaders"
			do shell script "mv " & (quoted form of active) & " " & (quoted form of desactive)
			display dialog "Accusé activé" giving up after 1
		else
			do shell script "defaults write com.apple.mail UserHeaders '{\"Disposition-Notification-To\" = \"julien.delprat@o-tomat.com\"; }'"
			do shell script "mv " & (quoted form of desactive) & " " & (quoted form of active)
			display dialog "Accusé desactivé" giving up after 1
		end if
	on error
		display dialog "Erreur : l'accusé de réception n'a pas été modifié"
	end try
	
end run
```


----------



## plusdego (13 Décembre 2007)

Ca ne m'affiche pas du tout les boîtes de dialogue... Est-il possible de demander à l'application Mail des les afficher ?


----------



## zacromatafalgar (14 Décembre 2007)

plusdego a dit:


> Ca ne m'affiche pas du tout les boîtes de dialogue... Est-il possible de demander à l'application Mail des les afficher ?



Tu peux m'en dire un peu plus sur ta manière de procéder car chez moi les dialogues apparaissent bien

Où est placé ce script ?

Comment le lances-tu ?

Si tu veux que Mail soit appelé pour afficher les dialogues il suffit de rajouter (tell app "Mail" to ) avant les (display dialog)


----------



## ceslinstinct (16 Décembre 2007)

Bonjour

Chez moi cela arrive que les boites de dialogue refusent de s'ouvrir et sautes dans le Dock.

Alors je fait passer la fenêtre de dialogue en premier plan.

Je fait précédé par *tell me to activate* le display dialog récalcitrant.

@+


----------

