Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何列出OSX中运行程序的所有窗口标题?_Macos_Bash_Shell_User Interface_Operating System - Fatal编程技术网

Macos 如何列出OSX中运行程序的所有窗口标题?

Macos 如何列出OSX中运行程序的所有窗口标题?,macos,bash,shell,user-interface,operating-system,Macos,Bash,Shell,User Interface,Operating System,我知道如何在Windows中列出所有窗口标题,例如使用Python。或者最终我可以直接用C/C++编写它 如何在Mac OS X上实现这一点?它不一定是Python语言,也不一定是跨平台的。最好是在不需要任何额外下载的情况下运行(如仅使用包含的命令的applescript文件或bash文件),但这不是必需的。可能“无需额外下载”的最简单方法是使用applescript: tell application "System Events" get name of every window o

我知道如何在Windows中列出所有窗口标题,例如使用Python。或者最终我可以直接用C/C++编写它


如何在Mac OS X上实现这一点?它不一定是Python语言,也不一定是跨平台的。最好是在不需要任何额外下载的情况下运行(如仅使用包含的命令的applescript文件或bash文件),但这不是必需的。

可能“无需额外下载”的最简单方法是使用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浏览器中运行。。脚本桥的组件(包括系统事件)无法从web浏览器中获得。)

执行此操作的最简单方法可能是“无需额外下载”使用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浏览器中运行。。脚本桥的组件(包括系统事件)不能从web浏览器中获得。)

空数组也可能属于其他桌面上有windows的进程,对吗?是否有任何方法可以获取所有进程中所有窗口的名称?@AlokMysore系统事件与多个桌面交互的方式很奇怪。其他桌面上的Windows有时可见,有时不可见…我不知道如何描述它,除了“buggy”。空阵列也可能属于其他桌面上有Windows的进程,对吗?是否有任何方法可以获取所有进程中所有窗口的名称?@AlokMysore系统事件与多个桌面交互的方式很奇怪。其他桌面上的窗口有时是可见的,有时是不可见的……除了“buggy”之外,我不知道如何描述它。