我知道如何在Windows中列出所有窗口标题,例如使用Python via the Win32 API。或者最终我可以直接用C / C ++编写它。
如何为Mac OS X实现此目的?它不一定必须在Python中,并且它不必是跨平台的。优选地,它可以在不需要任何额外下载的情况下运行(例如仅使用包含的命令的Applecript文件或bash文件),但这不是必需的。
答案 0 :(得分:2)
这可能是最简单的方法,而且没有额外的下载"是使用AppleScript:
tell application "System Events"
get name of every window of every process
end tell
由于Applescript语法非常钝,因此等效的Javascript是:
var SE = new Application("System Events");
SE.processes.windows.name()
这将返回以下形式的结构:
[[], [], ["Stack Overflow"], ["iTunes", "MiniPlayer"], ...]
其中每个数组条目代表一个正在运行的应用程序,这些数组中的每个字符串代表一个窗口。空数组表示没有打开窗口的应用程序。
(请注意,此Javascript必须在脚本编辑器中运行,不在Web浏览器中 .Scripting Bridge的组件(包括系统事件)不能从Web浏览器中获得。)