He modificado su código , realizando los cambios necesarios para que al menos ejecute (trabajo) a través del código para recopilar la información. mientras agrega algún código adicional para manejar los informes de más de un mensaje al tener un separador entre ellos. Sin embargo, puedes cambiarlo por otro que no sea el que hice.
Dicho esto, sin embargo, la salida para el visibleWindows
es solo una cadena de números que representan los id
concatenados, ya que así es como se escribe en la salida. No estoy seguro de si esa es la salida que esperaba, sin embargo, si el código , tal como lo escribió, se había ejecutado, el resultado habría sido el mismo para lo que se devolvió para 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
En el código anterior, si cambia de set visibleWindows to ""
a set visibleWindows to {}
, entonces visibleWindows
devuelve como una lista de id
's no solo una cadena de números.
Si también cambias:
tell application visibleProcess to set visibleWindows to visibleWindows & (id of windows whose visible is true)
Para:
tell application visibleProcess to set visibleWindows to visibleWindows & visibleProcess & (id of windows whose visible is true)
Obtienes el nombre de la aplicación seguido de una lista de id
de su ventana, por lo que al menos los datos devueltos tienen más sentido, luego solo una cadena de números o una lista de id
's que no saben que pertenece a what .
La conclusión es, obtenga listOfProcesses
por separado y luego deje que application no el process obtenga id
y hágalo fuera de "Eventos del sistema " tell
bloque. Todas las combinaciones que probé mientras dejaba el código restante dentro del bloque de "Eventos del sistema" tell
fallaron. Así que moví el resto fuera de él y cambié de tell process
a tell application
y funcionó. Luego ajusté un poco el código .