Applescript - activar la aplicación en segundo plano no funciona

4

¿Por qué no funciona esto?

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

mientras este

funciona

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

Obviamente, tiene algo que ver con el alcance, pero no entiendo por qué o qué.

    
pregunta d-b 15.06.2018 - 11:35

3 respuestas

5

Creo que el problema es ... Decirle a una aplicación que se active, se maneja mediante "Adiciones estándar", pero está pidiendo a "Eventos del sistema" que se encarguen de esa acción.

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
    
respondido por el wch1zpink 15.06.2018 - 20:32
3

Déjame contarte una historia:

Uno de los padres se levantó y llamó a tres hijos:

  • Ace: despiértate y tráeme una manzana
  • Deuce: despiértate y tráeme una manzana
  • Trey: despiértate y tráeme una manzana

Ese padre estaba feliz de tener tres manzanas y todos fuera de la cama.

El otro padre dijo:

  • Trey: despiértate y tráeme una manzana (o creen que le preguntaron a Trey; no están realmente seguros de que fueron específicos sobre qué o a quién se les preguntó)

¿Esto coincide con lo que "no funciona" para ti?

Si es así, impresionante. Si no, querrá pasar por cada secuencia de comandos en el Editor de secuencias de comandos y ver dónde se "quitan" las secuencias de comandos de sus programas. También animaría a echar un vistazo a enlace Depurador de secuencias de comandos: ejecuta algunas funciones básicas de forma gratuita, pero si valora su tiempo más de lo que hace a través de las secuencias de comandos en el editor más básico de Apple, puede que valga la pena el $$ para la versión completa.

Además, un libro sobre iteraciones o bucles podría ser un buen lugar para ir si todo no estuviera claro. No se sienta mal, este es un gran lugar para tropezar y aprender. Una vez que obtenga los bucles, podrá hacer cosas increíbles en cualquier lenguaje de scripting, no solo AppleScript.

    
respondido por el bmike 15.06.2018 - 13:38
1

Estaba intentando hacer clic en el botón "Aceptar" en Kontakt en segundo plano mientras trabajaba. Esto resolvió mi 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
    
respondido por el curtified 20.10.2018 - 20:53

Lea otras preguntas en las etiquetas