Applescript: l'attivazione dell'applicazione in background non funziona

4

Perché non funziona

tell application "System Events"
    set AppName to name of every process whose background only is false
    tell application (some item of AppName)
        activate
    end tell
end tell

mentre questo

lavori

global AppName
tell application "System Events"
    set AppName to name of every process whose background only is false
end tell

tell application (some item of AppName)
    activate
end tell

Ovviamente, ha qualcosa a che fare con l'ambito ma non capisco perché o cosa.

    
posta d-b 15.06.2018 - 11:35
fonte

3 risposte

5

Penso che il problema sia .. Dire a un'applicazione di attivarsi, è gestito da "Aggiunte standard", ma stai chiedendo "Eventi di sistema" per gestire quell'azione.

tell application "System Events" to set AppName to name of ¬
    every process whose background only is false
tell application (some item of AppName) to activate
    
risposta data 15.06.2018 - 20:32
fonte
3

Lascia che ti racconti una storia:

Un genitore si è alzato e ha chiamato tre bambini:

  • Asso - svegliati e portami una mela
  • Deuce - svegliati e portami una mela
  • Trey - svegliati e portami una mela

Quel genitore era felice di avere tre mele e tutti fuori dal letto.

L'altro genitore ha detto:

  • Trey - svegliati e portami una mela (o pensano di aver chiesto a Trey - non sono proprio sicuri che fossero specifici su cosa o chi è stato chiesto)

Questo corrisponde a "non funziona" per te?

Se è così - fantastico. In caso contrario, ti consigliamo di scorrere ogni script in Script Editor e vedere dove i tuoi programmi vanno "off script". Vorrei anche dare uno sguardo al link Script Debugger - Esegue alcune funzionalità di base gratuitamente, ma se apprezzi il tuo tempo più di quello che passi attraverso gli script nell'editor di base di Apple, potrebbe valere la pena per te per la versione completa.

Inoltre, un libro sull'iterazione o sui loop potrebbe essere un buon posto dove andare se tutto non fosse chiaro. Non sentirti male, questo è un ottimo posto per inciampare e imparare - una volta che avrai dei loop, sarai in grado di fare cose incredibili in qualsiasi linguaggio di scripting - non solo AppleScript.

    
risposta data 15.06.2018 - 13:38
fonte
1

Stavo cercando di fare clic sul pulsante "OK" su Kontakt in background mentre lavoravo. Questo ha risolto il mio problema:

tell application "System Events"
    if exists of application process "Kontakt 5" then
        tell application "Kontakt 5.6.0" to activate
        delay 0.5
        repeat
            try
                click UI element "OK" of window 1 of application process "Kontakt 5"
            end try
        end repeat
    end if
end tell
    
risposta data 20.10.2018 - 20:53
fonte

Leggi altre domande sui tag