Ho modificato il codice , apportando le modifiche necessarie per eseguire almeno (lavoro) tramite il codice per raccogliere le informazioni, aggiungendo qualche codice aggiuntivo per gestire la segnalazione di più di un messaggio avendo un separatore tra di loro. Tuttavia, puoi cambiarlo in qualcosa di diverso da quello che ho creato.
Ciò detto, però, l'output per visibleWindows
è solo una stringa di numeri che rappresentano il% concatenato di% co_de, poiché è così che viene scritto in output. Non sono sicuro se questo è l'output che ti aspettavi, tuttavia se il codice che hai scritto fosse stato pubblicato, il risultato sarebbe stato lo stesso per ciò che è stato restituito per id
.
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
Nel codice qui sopra, se cambi visibleWindows
in set visibleWindows to ""
, allora set visibleWindows to {}
restituisce come un elenco di visibleWindows
's non solo una stringa di numeri.
Se cambi anche:
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)
Ottieni il nome dell'applicazione seguito da un elenco di id
della sua finestra, quindi almeno i dati restituiti hanno più senso, quindi solo una stringa di numeri o un elenco di id
che non conosce che appartiene a cosa .
La linea di fondo è, prendi la id
separatamente e poi lascia che l' applicazione non il processo ottenga il listOfProcesses
e lo faccia al di fuori degli "Eventi di sistema" "Blocco id
. Ogni combinazione che ho provato mentre lasciavo il codice rimanente all'interno del blocco "% degli eventi di sistema" tell
non è riuscita. Così ho spostato il resto di esso al di fuori di esso e ho cambiato tell
in tell process
e ha funzionato. Poi ho ottimizzato un po 'il codice .