我已经完成了使用CGWindowListCopyWindowInfo
列出所有窗口(按照从前到后的顺序,我认为/希望)但是我遇到问题从NSWindow*
获取它所以我可以使用{ {1}}等等。
似乎我甚至没有从中获得orderFront:
。
这是我的代码,它是js-ctypes。
CGWindowID
PS:即使我使用的是排除桌面元素标志,我仍然可以获得像光标和底座这样的桌面元素,如果回答者可以解释如何修复它也会很棒!
答案 0 :(得分:6)
用于获取窗口ID的密钥是kCGWindowNumber
。
从窗口编号you could use [NSApp windowWithWindowNumber:windowNumber]
获取NSWindow。
不幸的是,这只适用于您的应用拥有的Windows,而不适用于其他应用程序窗口。
此外,如果您真的想在获得其他应用程序窗口的窗口ID后使用NSWindow,那么这是一个错误的假设:not all CGWindows are NSWindows。除了上述调用之外,Apple还没有提供从CGWindow到NSWindow的方法。要使用其他应用程序的窗口(如果其他应用程序是合作的),您将不得不坚持使用CGWindow对象。