# script pour lancer et éteindre une application à intervalle régulier



## le roms (23 Décembre 2018)

Bonjour,

J' ai créer une application d'art numérique interactive. C'est une sorte de miroir numérique. Cette installation est actuellement en fonctionnement dans le cadre d'une exposition sur le thème de la transition numérique.





voila mon problème: le programme tourne toute la journée sans interuption durant toute la durée de l'expo (1 mois). Cependant le programme peut à différente occasions avoir des ralentissements ou voir même se figer. ce qui implique un retour sur les lieux pour le redemarer.

je souhaiterais savoir comment je pourrais faire pour créer un script (apple script, automator ?) pour que le programme se lance puis s'arrête automatiquement toute les 30 min et se relance immédiatement après.

je découvre à peine l'apple script et ne connait rien à automator, j'ai regardé sur différents forum mais je ne trouve pas de réponse efficace à mon problème. 

j'ai juste réussis à faire un script (avec l'éditeur de script ) qui lance l'application et qui l'éteint au bout de 10 seconde (pour le test) mais je n'arrive pas à faire une boucle qui le relance immédiatement après. J'ai fais des essais (non concluant)  avec la fonction "repeat"

voici le script : "c'est un peu simpliste j'en convient mais pour le moment je n'arrive pas à mieux"

*tell* _application_ "physics_typo_inist"
*launch*
*delay* 10
*quit
end* *tell*


A votre bon coeur Mesdames Messieurs les programmeurs !!!


----------



## zeltron54 (23 Décembre 2018)

Bonjour,

Toujours en simpliste... 


```
tell application "Finder"
    repeat
        tell application "physics_typo_inist"
            Activate
            delay 1800 -- delai pour fonctionnement en secondes
            quit
        end tell
        delay 5 -- Delai pour attendre que l'appli quitte correctement avant de la relancer
    end repeat
end tell
```


----------



## le roms (23 Décembre 2018)

zeltron54 a dit:


> Bonjour,
> 
> Toujours en simpliste...
> 
> ...




Merci pour la réponse !

mais j'ai toujours un soucis
avec ton code, le programme se lance, il s'arrête après le délai mais ne se relance pas après:
il me met le code erreur suivant: 
*error* "Annulé par l’utilisateur." number -128

j'ai modifié ton script avec le suivant:  (mais là le programme ne s'arrête pas par contre il se relance automatiquement quand je le quitte manuellement )

*tell* _application_ "Finder"

*repeat*

*open* _application file_ "physics_typo_inist.app" *of* _folder_ "application.macosx" *of* _folder_ "Desktop" *of* _folder_ "romtack" *of* _folder_ "Users" *of* startup disk

*delay* 10 -- delai pour fonctionnement en secondes

*quit* _application file_ "physics_typo_inist.app" *of* _folder_ "application.macosx" *of* _folder_ "Desktop" *of* _folder_ "romtack" *of* _folder_ "Users" *of* startup disk


*delay* 5 -- Delai pour attendre que l'appli quitte correctement avant de la relancer

*end* *repeat*

*end* *tell*




une idée ?


----------



## zeltron54 (23 Décembre 2018)

Tu n'est plus dans un bloc tell de  ton application !

Reprend mon code et éventuellement augmente le délai pour attendre de 5 à 10 secondes par exemple, il faut être sur que ton application est bien entièrement quittée.

Edit: n'ayant pas ton application j'ai testé avec l'application TexEdit et pas de problème.


----------



## le roms (23 Décembre 2018)

zeltron54 a dit:


> Tu n'est plus dans un bloc tell de  ton application !
> 
> Reprend mon code et éventuellement augmente le délai pour attendre de 5 à 10 secondes par exemple, il faut être sur que ton application est bien entièrement quittée.




merci beaucoup pour tes réponses 


sur la base de tes infos, j'ai testé le code suivant et ça a l'air de fonctionner.
mais je vais essayer avec tes infos supplémentaires

quelle est la différence entre tell application et open application

encore merci !

*tell* _application_ "Finder"

*activate
*
*repeat*

*open* _application file_ "physics_typo_inist.app" *of* _folder_ "application.macosx" *of* _folder_ "Desktop" *of* _folder_ "romtack" *of* _folder_ "Users" *of* startup disk

*delay* 20 -- delai pour fonctionnement en secondes

*tell* _application_ "System Events" *to* *keystroke* "q" using _command down_ 

*delay* 1 -- Delai pour attendre que l'appli quitte correctement avant de la relancer

*end* *repeat*

*end* *tell*


----------



## zeltron54 (23 Décembre 2018)

Effectivement ton code, bien que très compliqué pour ça ...  doit fonctionné.
Alors si ça fonctionne , content pour toi


----------



## le roms (23 Décembre 2018)

zeltron54 a dit:


> Effectivement ton code, bien que très compliqué pour ça ...  doit fonctionné.
> Alors si 9a fonctionne , content pour toi



j'ai fais la synthèse des deux et ça fonctionne bien , je pense que "quit" ne fonctionne pas parce que je n'ai pas cette fonction dans mon programme d'art visuel (supposition)
en tout cas c'est nickel !!!

encorre merci d'avoir pris le temps de me répondre
joyeuses fête



*tell* _application_ "Finder"

*repeat*

*tell* _application_ "physics_typo_inist"

*activate*

*end* *tell*

*delay* 20 -- delai pour fonctionnement en secondes

*tell* _application_ "System Events" *to* *keystroke* "q" using _command down_

*delay* 1 -- Delai pour attendre que l'appli quitte correctement avant de la relancer

*end* *repeat*

*end* *tell*


----------



## zeltron54 (23 Décembre 2018)

Content pour toi ! 
Bonne fêtes de fin d'année.


----------

