Obtener el primer elemento de la lista usando AppleScript

3

¿Cómo obtengo el primer elemento de una lista en una variable?

Estoy intentando obtener la primera ventana de las ventanas de una aplicación.

Lo intenté

tell application "System Events"
    repeat with theProcess in processes
        if not background only of theProcess then
            if processName is "Xcode" then
                set theWindow to first window of windows
            end if
        end if
    end repeat
end tell

pero arroja este error:

  

No se puede obtener una ventana de cada ventana.

    
pregunta Iulian Onofrei 30.05.2017 - 12:37

1 respuesta

2

A menos que tenga una necesidad explícita de hacerlo de la manera que se muestra en su pregunta, lo mantendría mucho más simple y útil:

tell application "System Events" to set isRunning to exists (processes where name is "Xcode")
if isRunning then set theWindow to (first window of application "Xcode")

De lo contrario, al modificar su código de bloqueo de la siguiente manera obtendrá el mismo resultado que las dos líneas del código anterior:

tell application "System Events"
    repeat with theProcess in processes
        if not background only of theProcess then
            if name of theProcess is "Xcode" then
                tell application "Xcode"
                    set theWindow to first window of application "Xcode"
                end tell
            end if
        end if
    end repeat
end tell

Si desea utilizar las dos primeras líneas de código en mi respuesta en una forma más tokenizada, como ejemplo, use:

set appName to "Xcode"
tell application "System Events" to set isRunning to exists (processes where name is appName)
if isRunning then set theWindow to (first window of application appName)

Luego, todo lo que necesita hacer es establecer appName en la aplicación de destino en la primera línea de código y las dos líneas de código que siguen están como están y no es necesario editarlo para utilizarlo con otros nombres de aplicaciones.

    
respondido por el user3439894 30.05.2017 - 14:01

Lea otras preguntas en las etiquetas