Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Applescript relancer une application

8 réponses
Avatar
danrob
Le besoin :
Avec un script lancé depuis iView MediaPro (menu script) je souhaite
quitter puis immédiatement relancer cette application.

Le script suivant fonctionne en l'éxécutant depuis l'éditeur de script
mais ne relance pas l'application si il est lancé depuis ivmp.

Rien trouvé avec Gougueule ni Hapeul.
Quelle bidouille manque ?

tell application "iView MediaPro"
quit
end tell
delay 3
tell application "iView MediaPro"
activate
end tell
-- itou avec
launch application "iView MediaPro"

8 réponses

Avatar
Nina Popravka
On Mon, 12 Mar 2007 15:26:52 +0100, (Daniel Robillard)
wrote:

tell application "iView MediaPro"
activate
end tell


Vu qu'elle est quittée, elle doit être un peu sourde.
Je dirais plutôt au Finder de la lancer :-)
--
Nina

Avatar
Patrick Stadelmann
In article <1huvbsy.1ebau141gb8nqsN%,
(Daniel Robillard) wrote:

Le besoin :
Avec un script lancé depuis iView MediaPro (menu script) je souhaite
quitter puis immédiatement relancer cette application.

Le script suivant fonctionne en l'éxécutant depuis l'éditeur de script
mais ne relance pas l'application si il est lancé depuis ivmp.


Logique, car le script est exécuté dans le contexte de cette
application. Quand elle quitte, le script meurt.

Rien trouvé avec Gougueule ni Hapeul.
Quelle bidouille manque ?


Il faut passer par une applet externe, lancée par le script. Donc ton
script devient :

tell application "QuitteEtRelanceIVMP"
run
end tell

"QuitteEtRelanceIVMP" contient ton précédent script. Enregistrer comme
application.

Patrick
--
Patrick Stadelmann

Avatar
danrob
Nina Popravka wrote:

Vu qu'elle est quittée, elle doit être un peu sourde.


Hein !

Je dirais plutôt au Finder de la lancer :-)


Non marche pas, j'ai essayé aussi avec system event.
Tout marche jusqu'à l'appel de l'application.
Le problème vient du fait que l'application quittée est parente du
script (elle le lance).
Ça marche en lançant une autre application.

Avatar
Patrick Stadelmann
In article ,
Nina Popravka wrote:

On Mon, 12 Mar 2007 15:26:52 +0100, (Daniel Robillard)
wrote:

tell application "iView MediaPro"
activate
end tell


Vu qu'elle est quittée, elle doit être un peu sourde.


Non, AppleScript est suffisamment intelligent pour lancer une
application avant de lui envoyer une commande !

Patrick
--
Patrick Stadelmann


Avatar
danrob
Patrick Stadelmann wrote:

Logique, car le script est exécuté dans le contexte de cette
application. Quand elle quitte, le script meurt.


Il ne semble pas car des instructions beep et display dialog sont bien
exécutées après le quit.
tell application "iView MediaPro"
quit
end tell
beep 2
display dialog "quitté"
tell application "iView MediaPro"
activate
end tell

Il faut passer par une applet externe, lancée par le script. Donc ton
script devient :


Marche mais c'est lourd, il faut s'assurer du chemin.
Je reste persuadé qu'il existe une astuce sans intermédiaire puisqu'il
est possible de lancer une autre application.

Avatar
Patrick Stadelmann
In article <1huvqf8.1hdic62ati1k0N%,
(Daniel Robillard) wrote:

Patrick Stadelmann wrote:

Logique, car le script est exécuté dans le contexte de cette
application. Quand elle quitte, le script meurt.


Il ne semble pas car des instructions beep et display dialog sont bien
exécutées après le quit.


La commande

display dialog (name of current application) as text

permet de déterminer qui exécute le script. Si le script est lancé
depuis le menu Script, alors c'est System Events qui l'exécute, et dans
ce cas ça doit fonctionner, pour autant que l'on mette un délai (comme
dans ton premier script) sinon la commande "activate" est envoyé à
l'instance qui va quitter.

Si c'est iVMP, alors ça ne peut pas marcher, car

- soit la commande de lancement est envoyée quand l'application a déjà
quitté, et donc elle ne peut pas être envoyée !

- soit elle est envoyée avant, et vise donc l'instance encore active, et
n'a donc aucun effet.

Marche mais c'est lourd, il faut s'assurer du chemin.


Heu.. non. L'application est identifiée à la compilation, elle est
ensuite localisée automatiquement. Si elle change (e.g. mise à jour) le
script demandera de la localiser à nouveau.

Patrick
--
Patrick Stadelmann


Avatar
danrob
Patrick Stadelmann wrote:

Si c'est iVMP, alors ça ne peut pas marcher, car

- soit la commande de lancement est envoyée quand l'application a déjà
quitté, et donc elle ne peut pas être envoyée !

- soit elle est envoyée avant, et vise donc l'instance encore active, et
n'a donc aucun effet.


Je penche pour la deuxième car je constate que ivmp est encore active
durant le delay, elle quitte réellement au moment où elle devrait se
relancer.

Merci pour tes conseils.

Avatar
Patrick Stadelmann
In article <1huvx0t.1x7mnkh15ma4cqN%,
(Daniel Robillard) wrote:

Patrick Stadelmann wrote:

Si c'est iVMP, alors ça ne peut pas marcher, car

- soit la commande de lancement est envoyée quand l'application a déjà
quitté, et donc elle ne peut pas être envoyée !

- soit elle est envoyée avant, et vise donc l'instance encore active, et
n'a donc aucun effet.


Je penche pour la deuxième car je constate que ivmp est encore active
durant le delay, elle quitte réellement au moment où elle devrait se
relancer.

Merci pour tes conseils.


Si tu ne veux pas lancer une applet, tu peux utiliser un script shell à
la place :

osascript -e 'tell application "Finder" to quit'
sleep 1
open -a "Finder"

appelable via "do shell script" :

do shell script "/chemin/complet/vers/le/script"

Patrick
--
Patrick Stadelmann