Ich habe deine geändert Code Nehmen Sie die erforderlichen Änderungen vor, damit es zumindest ausgeführt wird (Arbeit) durch die Code um die Informationen zu sammeln, während Sie einige zusätzliche hinzufügen Code das Melden von mehr als einer Nachricht durch ein Trennzeichen zwischen ihnen zu handhaben. Sie können es jedoch in etwas anderes ändern, als ich es gemacht habe.
Das heißt aber, die Ausgabe für die visibleWindows
ist nur eine Folge von Zahlen, die die Verkettung darstellen id
's, wie es geschrieben ist, um auszugeben. Ich bin mir nicht sicher, ob das die Ausgabe ist, die Sie erwartet haben Code Wie Sie geschrieben haben, wäre das Ergebnis für das, wofür es zurückgegeben wurde, dasselbe gewesen 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
In dem Code oben, wenn Sie sich ändern set visibleWindows to ""
zu set visibleWindows to {}
, dann visibleWindows
kehrt als Liste der zurück id
ist nicht nur eine Folge von Zahlen.
Wenn Sie auch ändern:
tell application visibleProcess to set visibleWindows to visibleWindows & (id of windows whose visible is true)
Zu:
tell application visibleProcess to set visibleWindows to visibleWindows & visibleProcess & (id of windows whose visible is true)
Sie erhalten den Namen der Anwendung, gefolgt von einer Liste der Fenster id
, also machen zumindest die zurückgegebenen Daten mehr Sinn, als nur eine Folge von Zahlen oder eine Liste von id
weiß es nicht welche gehört Was .
Die Quintessenz ist, erhalten Sie die listOfProcesses
getrennt und dann die Anwendung nicht der verarbeiten bekommen das id
und dies außerhalb der "System Events" tell
Block. Jede Kombination habe ich ausprobiert, während ich die restlichen verlassen habe Code innerhalb der "System Events" tell
Block fehlgeschlagen. Also habe ich den Rest davon rausgezogen und mich verändert tell process
zu tell application
und es hat funktioniert. Dann habe ich den optimiert Code es ein bisschen.