J'ai modifié votre code en effectuant les changements nécessaires pour qu'il fonctionne au moins (travail) à travers le code pour rassembler les informations, tout en ajoutant quelques code pour gérer la déclaration de plus d'un message en les séparant par un séparateur. Cependant, vous pouvez le changer en quelque chose d'autre que ce que j'ai fait.
Cela dit, la sortie pour le visibleWindows
est juste une chaîne de nombres représentant la concaténation de id
car c'est ainsi qu'il est écrit en sortie. Je ne suis pas sûr que ce soit la sortie que vous attendiez, cependant si le fichier code tel que vous l'avez écrit, le résultat aurait été le même pour ce qui est retourné pour visibleWindows
.
on run
set visibleWindows to ""
set message to ""
tell application "System Events"
set listOfProcesses to (name of every process where background only is false)
end tell
repeat with visibleProcess in listOfProcesses
try
tell application visibleProcess to set visibleWindows to visibleWindows & (id of windows whose visible is true)
on error someError
set message to message & "Some error occurred: " & someError & "; "
end try
end repeat
return {visibleWindows, listOfProcesses, message}
end run
Dans le code ci-dessus, si vous modifiez set visibleWindows to ""
à set visibleWindows to {}
alors visibleWindows
retourne une liste des id
n'est pas seulement une chaîne de chiffres.
Si vous changez aussi :
tell application visibleProcess to set visibleWindows to visibleWindows & (id of windows whose visible is true)
A :
tell application visibleProcess to set visibleWindows to visibleWindows & visibleProcess & (id of windows whose visible is true)
Vous obtenez le nom de l'application suivi d'une liste des fenêtres de l'application. id
Ainsi, les données renvoyées ont au moins plus de sens qu'une simple chaîne de chiffres ou une liste de chiffres. id
de ne pas savoir dont appartient à ce que .
L'essentiel est d'obtenir le listOfProcesses
séparément et ensuite laisser le application pas le processus obtenir le id
et le faire en dehors des "événements système". tell
bloc. Toutes les combinaisons que j'ai essayées en laissant le reste code dans le cadre des "événements du système". tell
Le bloc a échoué. Donc j'ai déplacé le reste à l'extérieur de celui-ci et changé tell process
à tell application
et ça a marché. Ensuite, j'ai modifié le code un peu.