如何在 OS X 中列出 运行 个程序的所有 window 个标题?
How do I list all window titles of running programs in OS X?
我知道如何在 Windows 中列出所有 window 个标题,例如使用 Python via the Win32 API。或者最终我可以直接将它写在 C/C++ 中。
如何为 Mac OS X 完成此操作?它不一定必须在 Python 中,也不一定必须是 cross-platform。最好它 运行 不需要任何额外的下载(例如 applescript 文件或仅使用包含的命令的 bash 文件),但这不是必需的。
可能最简单的方法 "with no additional downloads" 是使用 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()
这将 return 形式的结构:
[[], [], ["Stack Overflow"], ["iTunes", "MiniPlayer"], ...]
其中每个数组条目代表一个 运行ning 应用程序,这些数组中的每个字符串代表一个 window。空数组表示没有打开 windows.
的应用程序
(请注意,此 Javascript 在脚本编辑器中必须 运行,在网络浏览器中不能 。脚本桥的组件,包括系统事件, 无法通过网络浏览器访问。)
我知道如何在 Windows 中列出所有 window 个标题,例如使用 Python via the Win32 API。或者最终我可以直接将它写在 C/C++ 中。
如何为 Mac OS X 完成此操作?它不一定必须在 Python 中,也不一定必须是 cross-platform。最好它 运行 不需要任何额外的下载(例如 applescript 文件或仅使用包含的命令的 bash 文件),但这不是必需的。
可能最简单的方法 "with no additional downloads" 是使用 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()
这将 return 形式的结构:
[[], [], ["Stack Overflow"], ["iTunes", "MiniPlayer"], ...]
其中每个数组条目代表一个 运行ning 应用程序,这些数组中的每个字符串代表一个 window。空数组表示没有打开 windows.
的应用程序(请注意,此 Javascript 在脚本编辑器中必须 运行,在网络浏览器中不能 。脚本桥的组件,包括系统事件, 无法通过网络浏览器访问。)