3 votes

Obtenir le premier élément d'une liste en utilisant AppleScript

Comment obtenir le premier élément d'une liste dans une variable ?

J'essaie d'obtenir la première fenêtre de la fenêtre d'une application.

J'ai essayé

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

mais cette erreur s'est produite :

On ne peut pas avoir une fenêtre de chaque fenêtre.

2voto

user3439894 Points 52496

À moins que vous n'ayez un besoin explicite de procéder de la manière indiquée dans votre question, je m'en tiendrais à une approche beaucoup plus simple et à l'utilisation :

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")

Sinon, la modification de votre bloc de code de la manière suivante obtiendra le même résultat que les deux lignes de code ci-dessus :

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 vous voulez utiliser les deux premières lignes de code dans ma réponse dans une utilisation plus symbolique de l'homme, à titre d'exemple :

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)

Ensuite, tout ce que vous avez à faire est de définir appName à l'application cible dans la première ligne de code et les deux lignes de code à la suite de ce qui précède et n'ont pas besoin d'être modifiés pour être utilisés avec d'autres noms d'applications.

0voto

kevinius Points 417

Au lieu de first window of windows essayez item 1 of windows

Comme l'ont souligné d'autres personnes, votre code peut avoir d'autres problèmes à résoudre, mais la syntaxe suggérée dans cette réponse peut être utilisée pour résoudre le problème de la récupération du premier objet dans une liste d'objets.

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