[Q] AppleScript : monter un disque et quitter des applis
20 réponses
blanc
Bonjour à tous,
J'essaie d'écrire un script qui :
- monte un disque
- quitte une certain nombre d'applis (je n'en mets qu'une ci-dessous)
- lance une appli particulière (X-Plane) et quitte Finder pour finir.
Voici le script (partiel) :
----------------------
tell application "Finder"
activate
if not (exists disk "Yad4") then
open "Vega:Users:jpb:scripts:monte_Yad4"
delay 10
end if
if not (exists disk "Yad4") then
exit
end if
end tell
tell application "Preview"
quit
end tell
[...]
tell application "Finder"
open file "Yad4:Applications_Y4:X-Plane 9:X-Plane"
quit
end tell
------------------------
Mes questions sont les suivantes :
- ligne 4 : je lance un shell-script pour monter le disque Yad4. Y
a-t-il une autre solution directement en AS ?
- ligne 5 : le "delay" est pour attendre que le disque soit monté. Y
a-t-il une autre solution ?
- ligne 8 : j'ai mis "exit" dans l'idée de terminer le script si le
disque n'a pas pu être monté. Mais AS me rajoute le mot clef "repeat".
Donc je suppose que ma commande n'est pas bonne. Que faut-il mettre à la
place de "exit" ?
- ligne 13 : Peut-on quitter une appli sans faire un "tell" à la dite
appli ?
Dans un autre script, je relance les applis ci-dessus quittées, et je
les cache :
-----------------------
tell application "Preview"
activate
end tell
[...]
tell application "System Events"
try
set visible of process "Preview" to false
end try
[...]
end tell
-----------------------
Est il possible de le faire plus simplement, sans avoir besoin de les
"activer" ?
--
JiPaul.
/ /--/--//\\ Jean-Paul Blanc
|/| L |\\\ quelquepart en (somewhere in)
\/|| = |||\\\ FRANCE
In article <1jykqm1.1ewuh0v1keqmymN%, (JiPaul) wrote:
C'est ça que je reproche à AS : c'est tantôt ceci, tantôt cela. Difficile de s'y retrouver... et surtout d'apprendre ce « langage ».
Le problème vient de l'implémentation par le Finder qui définit une class "item" alors que "item" est aussi le mot clé qui permet d'accéder aux éléments d'une liste.
Patrick -- Patrick Stadelmann
In article <1jykqm1.1ewuh0v1keqmymN%blanc@empty.org>,
blanc@empty.org (JiPaul) wrote:
C'est ça que je reproche à AS : c'est tantôt ceci, tantôt cela.
Difficile de s'y retrouver... et surtout d'apprendre ce « langage ».
Le problème vient de l'implémentation par le Finder qui définit une
class "item" alors que "item" est aussi le mot clé qui permet d'accéder
aux éléments d'une liste.
Patrick
--
Patrick Stadelmann <Patrick.Stadelmann@unine.ch>
In article <1jykqm1.1ewuh0v1keqmymN%, (JiPaul) wrote:
C'est ça que je reproche à AS : c'est tantôt ceci, tantôt cela. Difficile de s'y retrouver... et surtout d'apprendre ce « langage ».
Le problème vient de l'implémentation par le Finder qui définit une class "item" alors que "item" est aussi le mot clé qui permet d'accéder aux éléments d'une liste.
Patrick -- Patrick Stadelmann
Patrick Stadelmann
In article <1jykryz.1wprc5ua7xduN%, (JiPaul) wrote:
Autant pour moi, ça marche : apparemment il était juste caché sous Spark. Mais le curieux, c'est qu'il n'apparaissait pas avec exposé.
C'est normal, Exposé ne montre que les fenêtres, pas les dialogues ni les alertes.
Patrick -- Patrick Stadelmann
In article <1jykryz.1wprc5ua7xduN%blanc@empty.org>,
blanc@empty.org (JiPaul) wrote:
Autant pour moi, ça marche : apparemment il était juste caché sous
Spark. Mais le curieux, c'est qu'il n'apparaissait pas avec exposé.
C'est normal, Exposé ne montre que les fenêtres, pas les dialogues ni
les alertes.
Patrick
--
Patrick Stadelmann <Patrick.Stadelmann@unine.ch>
In article <1jykryz.1wprc5ua7xduN%, (JiPaul) wrote:
Autant pour moi, ça marche : apparemment il était juste caché sous Spark. Mais le curieux, c'est qu'il n'apparaissait pas avec exposé.
C'est normal, Exposé ne montre que les fenêtres, pas les dialogues ni les alertes.
Patrick -- Patrick Stadelmann
Patrick Stadelmann
In article <1jyks8u.187jl00k2lracN%, (JiPaul) wrote:
- pourquoi n'est-il pas possible de faire un tel dialogue de confirmation en dehors du Finder ?
"display dialog" est implémenté sous forme de "scripting additions". Ce sont des fonctions natives (donc code x86) qui permettent d'ajouter des commande au langage. Le code est chargé dans l'application qui exécute le script. Ca peut être l'Editeur de script, "AppleScript Runner" pour les script lancé par le menu Script, ...
En le mettant dans un "tell" tu force l'exécution dans le contexte de l'application choisie. Par exemple :
tell application "TextEdit" to display dialog "Test"
va désactiver tous les menus de TextEdit tant que le dialogue est affiché.
Ca c'est la situation sous Leopard. Le mécanisme est potentiellement un trou de sécurité puisque qu'il permet d'injecter du code dans les applications (c'est d'ailleurs utilisé par certains hacks depuis que l'utilisation des Input Manager à été restreinte).
Depuis Snow Leopard, il n'est plus autorisé d'exécuter du code natif (via une scripting additions) dans une autre application (via le "tell"). Pour éviter de casser la comptabilité, AS redirige automatiquement l'exécution du code natif vers le process qui exécute le script. Donc dans ton cas, si tu es sous SL, ça n'est donc pas le Finder qui exécute le "display dialog". Pour éviter la double redirection (celle du "tell" puis celle, automatique), il est conseillé d'invoquer les scripting additions soit en dehors de tout "tell", ou s'ils sont dans un block "tell" car ils utilisent des classes / commandes d'une application donnée, d'ajouter devant "tell current application to ...".
Patrick -- Patrick Stadelmann
In article <1jyks8u.187jl00k2lracN%blanc@empty.org>,
blanc@empty.org (JiPaul) wrote:
- pourquoi n'est-il pas possible de faire un tel dialogue de
confirmation en dehors du Finder ?
"display dialog" est implémenté sous forme de "scripting additions". Ce
sont des fonctions natives (donc code x86) qui permettent d'ajouter des
commande au langage. Le code est chargé dans l'application qui exécute
le script. Ca peut être l'Editeur de script, "AppleScript Runner" pour
les script lancé par le menu Script, ...
En le mettant dans un "tell" tu force l'exécution dans le contexte de
l'application choisie. Par exemple :
tell application "TextEdit" to display dialog "Test"
va désactiver tous les menus de TextEdit tant que le dialogue est
affiché.
Ca c'est la situation sous Leopard. Le mécanisme est potentiellement un
trou de sécurité puisque qu'il permet d'injecter du code dans les
applications (c'est d'ailleurs utilisé par certains hacks depuis que
l'utilisation des Input Manager à été restreinte).
Depuis Snow Leopard, il n'est plus autorisé d'exécuter du code natif
(via une scripting additions) dans une autre application (via le
"tell"). Pour éviter de casser la comptabilité, AS redirige
automatiquement l'exécution du code natif vers le process qui exécute le
script. Donc dans ton cas, si tu es sous SL, ça n'est donc pas le Finder
qui exécute le "display dialog". Pour éviter la double redirection
(celle du "tell" puis celle, automatique), il est conseillé d'invoquer
les scripting additions soit en dehors de tout "tell", ou s'ils sont
dans un block "tell" car ils utilisent des classes / commandes d'une
application donnée, d'ajouter devant "tell current application to ...".
Patrick
--
Patrick Stadelmann <Patrick.Stadelmann@unine.ch>
In article <1jyks8u.187jl00k2lracN%, (JiPaul) wrote:
- pourquoi n'est-il pas possible de faire un tel dialogue de confirmation en dehors du Finder ?
"display dialog" est implémenté sous forme de "scripting additions". Ce sont des fonctions natives (donc code x86) qui permettent d'ajouter des commande au langage. Le code est chargé dans l'application qui exécute le script. Ca peut être l'Editeur de script, "AppleScript Runner" pour les script lancé par le menu Script, ...
En le mettant dans un "tell" tu force l'exécution dans le contexte de l'application choisie. Par exemple :
tell application "TextEdit" to display dialog "Test"
va désactiver tous les menus de TextEdit tant que le dialogue est affiché.
Ca c'est la situation sous Leopard. Le mécanisme est potentiellement un trou de sécurité puisque qu'il permet d'injecter du code dans les applications (c'est d'ailleurs utilisé par certains hacks depuis que l'utilisation des Input Manager à été restreinte).
Depuis Snow Leopard, il n'est plus autorisé d'exécuter du code natif (via une scripting additions) dans une autre application (via le "tell"). Pour éviter de casser la comptabilité, AS redirige automatiquement l'exécution du code natif vers le process qui exécute le script. Donc dans ton cas, si tu es sous SL, ça n'est donc pas le Finder qui exécute le "display dialog". Pour éviter la double redirection (celle du "tell" puis celle, automatique), il est conseillé d'invoquer les scripting additions soit en dehors de tout "tell", ou s'ils sont dans un block "tell" car ils utilisent des classes / commandes d'une application donnée, d'ajouter devant "tell current application to ...".
Patrick -- Patrick Stadelmann
blanc
Patrick Stadelmann wrote:
Donc dans ton cas, si tu es sous SL, ça n'est donc pas le Finder qui exécute le "display dialog".
Je suis sous léo.
Pour éviter la double redirection (celle du "tell" puis celle, automatique), il est conseillé d'invoquer les scripting additions soit en dehors de tout "tell",[...]
Oui mais justement ma question : display dialog ne marche pas chez moi en dehors du "tell appli Finder".
-- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
Patrick Stadelmann <Patrick.Stadelmann@unine.ch> wrote:
Donc dans ton cas, si tu es sous SL, ça n'est donc pas le Finder
qui exécute le "display dialog".
Je suis sous léo.
Pour éviter la double redirection
(celle du "tell" puis celle, automatique), il est conseillé d'invoquer
les scripting additions soit en dehors de tout "tell",[...]
Oui mais justement ma question : display dialog ne marche pas chez moi
en dehors du "tell appli Finder".
--
JiPaul.
/ /--/--//\ Jean-Paul Blanc
|/| L |\ quelquepart en (somewhere in)
/|| = |||\ FRANCE
Donc dans ton cas, si tu es sous SL, ça n'est donc pas le Finder qui exécute le "display dialog".
Je suis sous léo.
Pour éviter la double redirection (celle du "tell" puis celle, automatique), il est conseillé d'invoquer les scripting additions soit en dehors de tout "tell",[...]
Oui mais justement ma question : display dialog ne marche pas chez moi en dehors du "tell appli Finder".
-- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
blanc
Patrick Stadelmann wrote:
Le problème vient de l'implémentation par le Finder qui définit une class "item" alors que "item" est aussi le mot clé qui permet d'accéder aux éléments d'une liste.
OK. Merci...
-- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
Patrick Stadelmann <Patrick.Stadelmann@unine.ch> wrote:
Le problème vient de l'implémentation par le Finder qui définit une
class "item" alors que "item" est aussi le mot clé qui permet d'accéder
aux éléments d'une liste.
OK. Merci...
--
JiPaul.
/ /--/--//\ Jean-Paul Blanc
|/| L |\ quelquepart en (somewhere in)
/|| = |||\ FRANCE
Le problème vient de l'implémentation par le Finder qui définit une class "item" alors que "item" est aussi le mot clé qui permet d'accéder aux éléments d'une liste.
OK. Merci...
-- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
Patrick Stadelmann
In article <1jyoowj.akqzj542si4bN%, (JiPaul) wrote:
Patrick Stadelmann wrote:
> Donc dans ton cas, si tu es sous SL, ça n'est donc pas le Finder > qui exécute le "display dialog".
Je suis sous léo.
> Pour éviter la double redirection > (celle du "tell" puis celle, automatique), il est conseillé d'invoquer > les scripting additions soit en dehors de tout "tell",[...]
Oui mais justement ma question : display dialog ne marche pas chez moi en dehors du "tell appli Finder".
C'est à dire ? Il ne s'affiche pas ? Tu l'exécute comment ? Tu peux utiliser :
set a to name of current application tell application "Finder" to display dialog a
pour déterminer qui exécute le script. Il faut bien entendu que l'application ait accès à la GUI.
En tout cas ça marche chez moi en 10.5.8, par exemple dans TextEdit avec un "tell". Sans "tell", c'est dans l'application qui exécute que le script, par exemple l'Editeur de Script ou "AppleScript Runner" depuis le menu Script.
Patrick -- Patrick Stadelmann
In article <1jyoowj.akqzj542si4bN%blanc@empty.org>,
blanc@empty.org (JiPaul) wrote:
Patrick Stadelmann <Patrick.Stadelmann@unine.ch> wrote:
> Donc dans ton cas, si tu es sous SL, ça n'est donc pas le Finder
> qui exécute le "display dialog".
Je suis sous léo.
> Pour éviter la double redirection
> (celle du "tell" puis celle, automatique), il est conseillé d'invoquer
> les scripting additions soit en dehors de tout "tell",[...]
Oui mais justement ma question : display dialog ne marche pas chez moi
en dehors du "tell appli Finder".
C'est à dire ? Il ne s'affiche pas ? Tu l'exécute comment ? Tu peux
utiliser :
set a to name of current application
tell application "Finder" to display dialog a
pour déterminer qui exécute le script. Il faut bien entendu que
l'application ait accès à la GUI.
En tout cas ça marche chez moi en 10.5.8, par exemple dans TextEdit avec
un "tell". Sans "tell", c'est dans l'application qui exécute que le
script, par exemple l'Editeur de Script ou "AppleScript Runner" depuis
le menu Script.
Patrick
--
Patrick Stadelmann <Patrick.Stadelmann@unine.ch>
In article <1jyoowj.akqzj542si4bN%, (JiPaul) wrote:
Patrick Stadelmann wrote:
> Donc dans ton cas, si tu es sous SL, ça n'est donc pas le Finder > qui exécute le "display dialog".
Je suis sous léo.
> Pour éviter la double redirection > (celle du "tell" puis celle, automatique), il est conseillé d'invoquer > les scripting additions soit en dehors de tout "tell",[...]
Oui mais justement ma question : display dialog ne marche pas chez moi en dehors du "tell appli Finder".
C'est à dire ? Il ne s'affiche pas ? Tu l'exécute comment ? Tu peux utiliser :
set a to name of current application tell application "Finder" to display dialog a
pour déterminer qui exécute le script. Il faut bien entendu que l'application ait accès à la GUI.
En tout cas ça marche chez moi en 10.5.8, par exemple dans TextEdit avec un "tell". Sans "tell", c'est dans l'application qui exécute que le script, par exemple l'Editeur de Script ou "AppleScript Runner" depuis le menu Script.
Patrick -- Patrick Stadelmann
blanc
Patrick Stadelmann wrote:
C'est à dire ? Il ne s'affiche pas ?
Désolé. Il marche parfaitement. J'avais, pour tester, sorti aussi par mégarde le if not (exists disk "Yad4") then open "Vega:Users:jpb:scripts:monte_Yad4" end if du "tell Finder".
Merci encore. :-)
-- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
Patrick Stadelmann <Patrick.Stadelmann@unine.ch> wrote:
C'est à dire ? Il ne s'affiche pas ?
Désolé. Il marche parfaitement. J'avais, pour tester, sorti aussi par
mégarde le
if not (exists disk "Yad4") then
open "Vega:Users:jpb:scripts:monte_Yad4"
end if
du "tell Finder".
Merci encore. :-)
--
JiPaul.
/ /--/--//\ Jean-Paul Blanc
|/| L |\ quelquepart en (somewhere in)
/|| = |||\ FRANCE
Désolé. Il marche parfaitement. J'avais, pour tester, sorti aussi par mégarde le if not (exists disk "Yad4") then open "Vega:Users:jpb:scripts:monte_Yad4" end if du "tell Finder".
Merci encore. :-)
-- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
blanc
Patrick Stadelmann wrote:
C'est normal, Exposé ne montre que les fenêtres, pas les dialogues ni les alertes.
Encore une question, Patrick :
Comment faire pour suspendre les économiseurs d'énergie et d'écran ?
Quand je lance X-Plane, lequel fonctionne avec un Yoke, je ne me sers plus de la souris ni du clavier. Donc au bout de quelque minutes, l'économiseur d'écran se met en route, puis l'économiseur d'énergie m'éteint l'écran. Je souhaiterais donc me servir des deux scripts que j'ai écrit (avec ton aide :-) pour : - rendre inactifs ces deux économiseurs lorsque je lance X-plane (dans le script de lancement qui quitte un certain nombre d'appli bouffeuses de CPU) - les rendre de nouveau actifs après avoir quitté X-plane (dans le script qui me permet de relancer les applis précédentes)
J'ai cherché dans le dico de System Events : rien trouvé J'ai cherché un dico pour System Préférences : rien trouvé
Donc je sollicite encore une fois ton aide :-/ -- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
Patrick Stadelmann <Patrick.Stadelmann@unine.ch> wrote:
C'est normal, Exposé ne montre que les fenêtres, pas les dialogues ni
les alertes.
Encore une question, Patrick :
Comment faire pour suspendre les économiseurs d'énergie et d'écran ?
Quand je lance X-Plane, lequel fonctionne avec un Yoke, je ne me sers
plus de la souris ni du clavier. Donc au bout de quelque minutes,
l'économiseur d'écran se met en route, puis l'économiseur d'énergie
m'éteint l'écran. Je souhaiterais donc me servir des deux scripts que
j'ai écrit (avec ton aide :-) pour :
- rendre inactifs ces deux économiseurs lorsque je lance X-plane
(dans le script de lancement qui quitte un certain nombre d'appli
bouffeuses de CPU)
- les rendre de nouveau actifs après avoir quitté X-plane
(dans le script qui me permet de relancer les applis précédentes)
J'ai cherché dans le dico de System Events : rien trouvé
J'ai cherché un dico pour System Préférences : rien trouvé
Donc je sollicite encore une fois ton aide :-/
--
JiPaul.
/ /--/--//\ Jean-Paul Blanc
|/| L |\ quelquepart en (somewhere in)
/|| = |||\ FRANCE
C'est normal, Exposé ne montre que les fenêtres, pas les dialogues ni les alertes.
Encore une question, Patrick :
Comment faire pour suspendre les économiseurs d'énergie et d'écran ?
Quand je lance X-Plane, lequel fonctionne avec un Yoke, je ne me sers plus de la souris ni du clavier. Donc au bout de quelque minutes, l'économiseur d'écran se met en route, puis l'économiseur d'énergie m'éteint l'écran. Je souhaiterais donc me servir des deux scripts que j'ai écrit (avec ton aide :-) pour : - rendre inactifs ces deux économiseurs lorsque je lance X-plane (dans le script de lancement qui quitte un certain nombre d'appli bouffeuses de CPU) - les rendre de nouveau actifs après avoir quitté X-plane (dans le script qui me permet de relancer les applis précédentes)
J'ai cherché dans le dico de System Events : rien trouvé J'ai cherché un dico pour System Préférences : rien trouvé
Donc je sollicite encore une fois ton aide :-/ -- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
Patrick Stadelmann
In article <1jz7686.r2108jxa75j4N%, (JiPaul) wrote:
Comment faire pour suspendre les économiseurs d'énergie et d'écran ?
Pour les économies d'énergie, c'est faisable avec "systemsetup" (voir le man) via "do shell script". Pour l'économiseur d'écran, essaye avec :
toujours via "do shell script" (0 pour désactiver, sinon le délai en secondes). [...] A noter que l'économiseur d'écran et d'autres préférences systèmes sont directement gérées via System Events depuis 10.6.
Pour ça on verra plus tard. En attendant ça marche. Merci à toi. Voici mon script pour ceux que ça intéressent :
#!/bin/zsh # econoff - enregistre les paramètres d'économiseurs (sous # forme de commandes dans le script econon) # et les désactive
if [[ "$AA" != "0" ]] then echo "defaults -currentHost write com.apple.screensaver idleTime $AA">>$ECONON defaults -currentHost write com.apple.screensaver idleTime 0 fi
AA=`systemsetup -getcomputersleep|cut -d -f 3`
if [[ "$AA" != "Never" && "$AA" != "Off" ]] then echo "systemsetup -setcomputersleep $AA">>$ECONON systemsetup -setcomputersleep Never fi
AA=`systemsetup -getdisplaysleep|cut -d -f 4`
if [[ "$AA" != "Never" && "$AA" != "Off" ]] then echo "systemsetup -setdisplaysleep $AA">>$ECONON systemsetup -setdisplaysleep Never fi
AA=`systemsetup -getharddisksleep|cut -d -f 4`
if [[ "$AA" != "Never" && "$AA" != "Off" ]] then echo "systemsetup -setharddisksleep $AA">>$ECONON systemsetup -setharddisksleep Never fi echo >> $ECONON echo osascript -e 'tell application "Terminal">>$ECONON echo ' set nb to count of windows'>>$ECONON echo ' if nb > 1 then close first window'>>$ECONON echo ' if nb <= 1 then quit'>>$ECONON echo ' end tell'' &>>$ECONON echo >> $ECONON
chmod u+x $ECONON
osascript -e 'tell application "Terminal" set nb to count of windows if nb > 1 then close first window if nb <= 1 then quit end tell' &
-- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
Patrick Stadelmann <Patrick.Stadelmann@unine.ch> wrote:
Pour les économies d'énergie, c'est faisable avec "systemsetup" (voir le
man) via "do shell script". Pour l'économiseur d'écran, essaye avec :
toujours via "do shell script" (0 pour désactiver, sinon le délai en
secondes).
[...]
A noter que l'économiseur d'écran et d'autres préférences systèmes sont
directement gérées via System Events depuis 10.6.
Pour ça on verra plus tard. En attendant ça marche. Merci à toi. Voici
mon script pour ceux que ça intéressent :
#!/bin/zsh
# econoff - enregistre les paramètres d'économiseurs (sous
# forme de commandes dans le script econon)
# et les désactive
if [[ "$AA" != "0" ]]
then echo "defaults -currentHost write com.apple.screensaver idleTime
$AA">>$ECONON
defaults -currentHost write com.apple.screensaver idleTime 0
fi
AA=`systemsetup -getcomputersleep|cut -d -f 3`
if [[ "$AA" != "Never" && "$AA" != "Off" ]]
then echo "systemsetup -setcomputersleep $AA">>$ECONON
systemsetup -setcomputersleep Never
fi
AA=`systemsetup -getdisplaysleep|cut -d -f 4`
if [[ "$AA" != "Never" && "$AA" != "Off" ]]
then echo "systemsetup -setdisplaysleep $AA">>$ECONON
systemsetup -setdisplaysleep Never
fi
AA=`systemsetup -getharddisksleep|cut -d -f 4`
if [[ "$AA" != "Never" && "$AA" != "Off" ]]
then echo "systemsetup -setharddisksleep $AA">>$ECONON
systemsetup -setharddisksleep Never
fi
echo >> $ECONON
echo osascript -e 'tell application "Terminal">>$ECONON
echo ' set nb to count of windows'>>$ECONON
echo ' if nb > 1 then close first window'>>$ECONON
echo ' if nb <= 1 then quit'>>$ECONON
echo ' end tell'' &>>$ECONON
echo >> $ECONON
chmod u+x $ECONON
osascript -e 'tell application "Terminal"
set nb to count of windows
if nb > 1 then close first window
if nb <= 1 then quit
end tell' &
--
JiPaul.
/ /--/--//\ Jean-Paul Blanc
|/| L |\ quelquepart en (somewhere in)
/|| = |||\ FRANCE
toujours via "do shell script" (0 pour désactiver, sinon le délai en secondes). [...] A noter que l'économiseur d'écran et d'autres préférences systèmes sont directement gérées via System Events depuis 10.6.
Pour ça on verra plus tard. En attendant ça marche. Merci à toi. Voici mon script pour ceux que ça intéressent :
#!/bin/zsh # econoff - enregistre les paramètres d'économiseurs (sous # forme de commandes dans le script econon) # et les désactive
if [[ "$AA" != "0" ]] then echo "defaults -currentHost write com.apple.screensaver idleTime $AA">>$ECONON defaults -currentHost write com.apple.screensaver idleTime 0 fi
AA=`systemsetup -getcomputersleep|cut -d -f 3`
if [[ "$AA" != "Never" && "$AA" != "Off" ]] then echo "systemsetup -setcomputersleep $AA">>$ECONON systemsetup -setcomputersleep Never fi
AA=`systemsetup -getdisplaysleep|cut -d -f 4`
if [[ "$AA" != "Never" && "$AA" != "Off" ]] then echo "systemsetup -setdisplaysleep $AA">>$ECONON systemsetup -setdisplaysleep Never fi
AA=`systemsetup -getharddisksleep|cut -d -f 4`
if [[ "$AA" != "Never" && "$AA" != "Off" ]] then echo "systemsetup -setharddisksleep $AA">>$ECONON systemsetup -setharddisksleep Never fi echo >> $ECONON echo osascript -e 'tell application "Terminal">>$ECONON echo ' set nb to count of windows'>>$ECONON echo ' if nb > 1 then close first window'>>$ECONON echo ' if nb <= 1 then quit'>>$ECONON echo ' end tell'' &>>$ECONON echo >> $ECONON
chmod u+x $ECONON
osascript -e 'tell application "Terminal" set nb to count of windows if nb > 1 then close first window if nb <= 1 then quit end tell' &
-- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE