Aide code AppleScript

caramelle22

Membre confirmé
14 Septembre 2009
13
0
J’utilise le code suivant pour forcer à quitter Word avec AppleScript :

tell application "System Events"
set appname to "Microsoft Word"
set the_process to the process appname
set pid to the unix id of the_process
end tell
if pid is not "" then do shell script ("kill -9 " & pid)

Est-ce qu’il y aurait moyen d’ajouter à ce script une commande (une condition) qui ferait en sorte que ce scripte s’exécute seulement si Word est ouvert. Merci.
 

Aliboron

Chercheur de son
Club MacG
1 Janvier 2008
14 163
1 029
Toulouse.cong
faq.office.macintosh.free.fr
Vite fait (pas testé) je me baserais sur quelque chose du genre :

Bloc de code:
tell application "System Events" to exists process named "Microsoft Word"
if the result then
	tell application "Microsoft Word"
		quit saving no
	end tell
end if
 

caramelle22

Membre confirmé
14 Septembre 2009
13
0
Merci Aliboron, ça fonctionne en partie seulement car il faut que je (Kill ) l'application et non seulement la fermer. Le code que j'ai présenté fait ça mais si l'application n'est pas ouverte, AppleScript génère un message d'erreur.


---------- Nouveau message ajouté à 16h25 ---------- Le message précédent a été envoyé à 15h17 ----------

J'ai eu la solution du site MacScripter:

tell application "Microsoft Word"
if it is running then
tell application "System Events" to set pid to the unix id of process "Microsoft Word"
do shell script ("kill -9 " & pid)
else
return 2
end if
end tell



Merci de votre aide Aliboron
 

Pascal 77

ex modéraptor
Club MacG
28 Octobre 2004
44 555
3 553
68
Sous la limite KT
Merci Aliboron, ça fonctionne en partie seulement car il faut que je (Kill ) l'application et non seulement la fermer. Le code que j'ai présenté fait ça mais si l'application n'est pas ouverte, AppleScript génère un message d'erreur.


---------- Nouveau message ajouté à 16h25 ---------- Le message précédent a été envoyé à 15h17 ----------

J'ai eu la solution du site MacScripter:

tell application "Microsoft Word"
if it is running then
tell application "System Events" to set pid to the unix id of process "Microsoft Word"
do shell script ("kill -9 " & pid)
else
return 2
end if
end tell



Merci de votre aide Aliboron

Deux choses :

1) il y avait plus simple, AppleScript intègre la structure "try/end try" qui est faite pour éviter l'apparition de message d'erreur en cas d'échec de l'application d'une commande, ce qui donnerait :

Bloc de code:
	tell application "Microsoft Word"
                try		
                       quit saving no
                end try
	end tell

On aurait même pu inclure tout le bloc "tell/end tell" entre try et end try

2) Là, on n'est plus dans le domaine du forum "Applications", donc, on déménage dans la section adéquate.



EDIT : Ah oui, 3) évite l'utilisation systématique du gras, des polices de taille supérieure à la normale ou des majuscules, sur un forum, c'est l'équivalent de crier dans une conversation ordinaire.
 
Dernière édition: