Bonjour,
Je souhaite créer un script permettant de quitter toutes les applications ouvertes.
N'y connaissant pas grand chose à Applescript, j'ai pioché ici ou là sur internet des bouts de code qui me donne quelque chose correct, mais pas parfait.
Mon script (cf. infra) est en deux parties : la première demande "gentiment" aux applications de bien vouloir quitter (sans sauver le document en cours), la seconde partie "tue" les applications récalcitrantes qui n'auraient pas compris la première demande "gentille".
Le problème : certaines applications, comme LibreOffice, refuse de quitter gentiment et bloque le script par un pop-up du genre "Où se trouve soffice ?"
Ma question : comment faire pour que l'exécution du script ne soit pas entravée par un pop-up d'un logiciel récalcitrant, mais continue, en passant par la phase 2, à savoir "tuer" ce même logiciel récalcitrant et son pop-up de malheur ?
Je précise : je pourrais garder uniquement la deuxième partie de mon script, celle qui tue toutes les applications, mais cela ne plairait pas à un logiciel comme Word qui, ensuite, lance son outil de récupération et veut envoyer les détails de l'incident à Microsoft. Je pourrais aussi tuer LibreOffice d'entrée de jeu en le ciblant spécifiquement, mais cela n'empêcherait pas un autre logiciel, tel ceux d'Adobe, de bloquer, à leur tour, la bonne marche du script. Bref, je vise un script qui s'adapte au plus grand nombre de cas.
D'avance, je vous remercie pour les réponses.
tell application "System Events" to set quitapps to name of every application process whose background only is false and name is not "Finder"
repeat with closeall in quitapps
quit application closeall without saving
end repeat
delay 5
tell application "System Events" to set pNames to name of every process
repeat with i from 1 to (count pNames)
set (item i of pNames) to quoted form of (item i of pNames)
end repeat
set {oAStid, AppleScript's text item delimiters} to {AppleScript's text item delimiters, " "}
set pNames to pNames as string
set AppleScript's text item delimiters to oAStid
try
do shell script ("killall " & pNames)
end try
Je souhaite créer un script permettant de quitter toutes les applications ouvertes.
N'y connaissant pas grand chose à Applescript, j'ai pioché ici ou là sur internet des bouts de code qui me donne quelque chose correct, mais pas parfait.
Mon script (cf. infra) est en deux parties : la première demande "gentiment" aux applications de bien vouloir quitter (sans sauver le document en cours), la seconde partie "tue" les applications récalcitrantes qui n'auraient pas compris la première demande "gentille".
Le problème : certaines applications, comme LibreOffice, refuse de quitter gentiment et bloque le script par un pop-up du genre "Où se trouve soffice ?"
Ma question : comment faire pour que l'exécution du script ne soit pas entravée par un pop-up d'un logiciel récalcitrant, mais continue, en passant par la phase 2, à savoir "tuer" ce même logiciel récalcitrant et son pop-up de malheur ?
Je précise : je pourrais garder uniquement la deuxième partie de mon script, celle qui tue toutes les applications, mais cela ne plairait pas à un logiciel comme Word qui, ensuite, lance son outil de récupération et veut envoyer les détails de l'incident à Microsoft. Je pourrais aussi tuer LibreOffice d'entrée de jeu en le ciblant spécifiquement, mais cela n'empêcherait pas un autre logiciel, tel ceux d'Adobe, de bloquer, à leur tour, la bonne marche du script. Bref, je vise un script qui s'adapte au plus grand nombre de cas.
D'avance, je vous remercie pour les réponses.
tell application "System Events" to set quitapps to name of every application process whose background only is false and name is not "Finder"
repeat with closeall in quitapps
quit application closeall without saving
end repeat
delay 5
tell application "System Events" to set pNames to name of every process
repeat with i from 1 to (count pNames)
set (item i of pNames) to quoted form of (item i of pNames)
end repeat
set {oAStid, AppleScript's text item delimiters} to {AppleScript's text item delimiters, " "}
set pNames to pNames as string
set AppleScript's text item delimiters to oAStid
try
do shell script ("killall " & pNames)
end try