我希望能够从屏幕最前面的窗口中获取所有文本,将其传输到网址解析器并从解析后的文本中选择要打开的网址。
要做到这一点,我需要一种方法来访问最前面窗口的所有文本内容。我已经接近使用applescript,但我找不到获取实际文本的方法。我怀疑swift可能会提供帮助,但是我很遗憾甚至谷歌这个,因为我的大多数搜索最终只能找到一些简单的方法,比如从Chrome等标签中获取url等。
这是我想要的要点:
tell the frontmost application
get contents of frontmost window as text
end tell
答案 0 :(得分:1)
您是否尝试获取特定应用程序的所有UI元素?
PropertyChanged
答案 1 :(得分:0)
JXA的解决方案:
//Example get all text from "ScreenFlow"
var sProc = "ScreenFlow"
var system = Application('System Events')
var elements = system.processes[sProc].windows[0].entireContents()
var s = ""
for (var i=0;i<elements.length;i++){
s = s + elements[i].name() + ","
}
s = s.replace(/null,/g,"")
//Return s
console.log(s)
您可以添加其他元素子项,以使此列表更加密集。我视频编辑器的示例输出:
"Video,+ Action,Color:,Offset:,Blur Size,Shadow,Opacity,Scale:,Z Rotation:,Reflection,Y Rotation:,Opacity:,Cropping,X Rotation:,Position:,Color Controls,Corner Round:,Video Filters,Duration: 1 min 0 secs,UI Mass Email App,UI Mass Email App,"
注意这不会抓取菜单文本。为此,您必须循环遍历system.processes[sProc].menuBars