Matrice di applicazioni Applescript

4

Ho uno script che ricarica la scheda attiva di un browser aperto, ma voglio che lo faccia con tutti i browser aperti. C'è un modo per creare un elenco / array e usarlo in questo codice?

Questo codice funziona solo con un browser:

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

Ho provato a creare un array / elenco ma penso che non sia così perché non funziona:

set browsers to {"Google Chrome", "Firefox", "Opera", "Safari"}
    
posta tenshimsm 24.06.2012 - 00:23
fonte

1 risposta

4

In genere non puoi sostituire un elenco per una stringa e far funzionare le cose senza altre modifiche.

Un buon modo per aggirare questo è usare un approccio repeat with variable in list . Ciò ti consente di esaminare ogni voce di un elenco e di eseguire il tuo codice con ciascun elemento nell'elenco singolarmente.
Ecco come applicarlo al tuo codice:

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

Tutto è uguale ad eccezione del fatto che il tuo codice è racchiuso in un blocco repeat with e il "Safari" literal è sostituito da browser , un riferimento al browser corrente nell'elenco dei browser (il codice verrà eseguito una volta per ogni browser nell'elenco).

    
risposta data 24.06.2012 - 02:13
fonte

Leggi altre domande sui tag