(การโพสต์สิ่งนี้เป็นคำตอบที่แยกกันนานเกินไปที่จะใส่ความคิดเห็น)
ให้เครดิต @MatthieuRiegler สำหรับสคริปต์ต้นฉบับ
สิ่งนี้ใช้ได้ผลในวันที่ 10.12.6 และเป็นการเปลี่ยนแปลงเล็กน้อยของสคริปต์ต้นฉบับ (เห็นความคิดเห็นของ @ CharlieGorichanaz หลังจากที่ฉันทำการสอบสวนของตัวเอง):
set textToSearchForInProcessName to "Not Responding"
-- Run Activity Monitor
tell application "Activity Monitor" to activate
tell application "System Events" to tell process "Activity Monitor"
-- Wait for the Activity Monitor window to open
repeat until (exists window 1)
delay 1
end repeat
--display notification "Window appeared"
-- Wait for the Menubar to be present
repeat until (exists menu 1 of menu bar item "View" of menu bar 1)
delay 1
end repeat
--display notification "Menubar appeared"
-- Make sure View -> My Processes is selected
click menu item "My Processes" of menu 1 of menu bar item "View" of menu bar 1
-- Click the 'CPU View' button ( **1 )
click radio button 1 of radio group 1 ¬
of group 2 of toolbar 1 ¬
of window 1
-- Working with the list of processes
tell outline 1 of scroll area 1 of window 1
-- Looking for Not responding process
set notResponding to rows whose value of ¬
first static text contains textToSearchForInProcessName
repeat with aProcess in notResponding
-- For each non responding process retrieve the PID
set pid to value of text field 1 of aProcess -- ( **2 )
-- Kill that process using pid
if pid is not "" then do shell script ("kill -9 " & pid)
end repeat
end tell
end tell
** 1
ใน MacOS 10.12.x แถบเครื่องมือมีเพิ่มเติมไอคอนเนื่องจากการที่ชุดของปุ่ม (CPU, Memory, พลังงาน, ฯลฯ ) อยู่ใน แทนgroup 2 of toolbar 1
group 1 of toolbar 1
หากไม่มีไอคอนนั้น (ฉันยังไม่ได้ยืนยันใน macOS เวอร์ชั่นเก่ากว่า) ฉันเชื่อว่าจะมีปุ่ม CPU ฯลฯgroup 1 of toolbar 1
** 2
สิ่งนี้ใช้ได้หากคุณลากคอลัมน์ PID ในคอลัมน์กิจกรรมไปยังตำแหน่งอื่น ฉันจะลากคอลัมน์ PID ไปยังตำแหน่งซ้ายสุดดังนั้นในบรรทัดนี้ฉันต้องเปลี่ยนดัชนีเป็น1
:
set pid to value of text field 1 of aProcess
คอลัมน์จะมีหมายเลขจากด้านซ้ายสุดเริ่มต้นที่ 1 ดังนั้นปรับดัชนีที่ไฮไลต์ในบรรทัดด้านบนตามลำดับหากจำเป็น