4 votes

Tableau d'applications Applescript

J'ai un script qui recharge l'onglet actif d'un navigateur ouvert, mais je veux qu'il le fasse avec tous les navigateurs ouverts. Y a-t-il un moyen de faire une liste/un tableau et de l'utiliser dans ce code ?

Ce code ne fonctionne qu'avec un seul navigateur :

if application "Safari" is running then
    tell application "Safari"
        activate
    end tell
    tell application "System Events"
        tell process "Safari"
            keystroke "r" using {command down}
        end tell
    end tell
end if

J'ai essayé de créer un tableau/une liste mais je pense que ce n'est pas la bonne solution car cela ne fonctionne pas :

set browsers to {"Google Chrome", "Firefox", "Opera", "Safari"}

4voto

Mateo Points 909

En général, on ne peut pas remplacer une chaîne par une liste et faire en sorte que les choses fonctionnent sans apporter d'autres modifications.

Un bon moyen de contourner ce problème est d'utiliser un fichier repeat with variable in list approche. Cela vous permet de passer en revue chaque élément d'une liste et d'exécuter votre code avec chaque élément de la liste individuellement.
Voici comment appliquer cela à votre code :

set browsers to {"Google Chrome", "Firefox", "Opera", "Safari"}

repeat with browser in browsers
    if application browser is running then
        tell application browser
            activate
        end tell
        tell application "System Events"
            tell process browser
                keystroke "r" using {command down}
            end tell
        end tell
    end if
end repeat

Tout est identique sauf que votre code est enveloppé dans un repeat with et le bloc "Safari" est remplacé par browser une référence au navigateur actuel dans la liste des navigateurs (le code sera exécuté une fois pour chaque navigateur de la liste).

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X