我一直试图让其他应用程序的任何给定窗口成为最前沿和专注的。
以下是我尝试的两种方法:
的AppleScript
tell application "Safari"
set index of window "Downloads" to 1
activate
end tell
为什么它不起作用:虽然它似乎改变了z-Order,但它并没有改变焦点!即使混淆了,前一个最前面的窗口仍然保持焦点。
CoreGraphicServices
CGSWindowOrder(cid, wid, kCGSOrderAbove, nil)
为什么它不起作用:如果不是通用所有者,则无法更改其他进程拥有的窗口的顺序。在这种情况下,让自己成为通用所有者不是一个选择 - 我不想废弃Dock。
小结
我需要将窗口放在最前面并从一个过程集中到另一个过程。 AppleScript无法关注,因为我没有窗口,所以CGS不是一个选项。
任何解决方案/想法?
答案 0 :(得分:1)
尝试使用辅助功能API将AXPress操作发送到AXWindow。显然,用户需要访问辅助设备才能打开。