2017-02-03 95 views
0

我試圖使用以下AppleScript來獲取所有窗口(包括最小化的窗口)的PID。此腳本無法獲得其他桌面上的窗口的PID獲取MacOS上所有打開的窗口的PID

是否有任何解決方法,因此我仍然可以在所有桌面上獲得打開的窗口列表,而無需activate個別進程並檢查它們是否具有窗口?

tell application "System Events" 
    repeat with proc in (every process) 
     if exists(first window of proc) then 
      set pid to unix id of proc 
      log pid 
     end if 
    end repeat 
end tell 

PS,我不太熟悉AppleScript。我設法使用StackOverflow一起破解這個。這可能不是我想要做的最有效的方法。

回答

0

貌似我得到這個與這種醜惡bash工作 - applescript破解

osascript -e "tell application \"System Events\" 
    repeat with proc in (processes where background only is false) 
     set pname to name of proc 
     log pname 
    end repeat 
end tell" 2>&1 | 
while read line 
do 
    echo "process " $line 
    pgrep $line 
done 

這將打印像

process Finder 
818 
process Google Chrome 
3730 
3734 
3740 
5838 
process iTerm2 
3750 
4210 
process Sublime Text 
3822 

其中PID 818屬於Finder過程等。