我尝试使用以下AppleScript
来获取所有窗口的PID
(包括最小化的窗口)。此脚本无法在其他桌面上获取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 :(得分:0)
看起来我让这个丑陋bash
- applescript
hack
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
进程的位置,等等。