gpt4 book ai didi

Cocoa 可访问性 API 和空间?

转载 作者:行者123 更新时间:2023-12-03 16:19:10 29 4
gpt4 key购买 nike

我正在编写的应用程序 ( http://code.google.com/p/blazingstars/issues/detail?id=25 ) 遇到问题,其中我的程序是一个菜单栏(菜单栏)应用程序,它使用辅助功能 API 与另一个程序交互并控制另一个程序。我做了一些常见的事情,例如注册 API 通知并通过 API 调用获取窗口列表等,但我不久前意识到,如果我的程序在我正在交互的程序之后在第二个空间(虚拟桌面)中启动with 首先启动,我的程序将崩溃并烧毁,因为它无法访问有关其目标的任何信息。 (有办法解决我所缺少的问题吗?)

一个简单的解决方案是弹出一个对话框,要求用户在正确的空间中重新启动程序,但对于我来说,我无法弄清楚如何通过 NSWorkspace 或Accessibility API,以便我可以将其与我所在的空间进行比较。有什么想法吗?

请注意,将集合行为设置为 NSWindowCollectionBehaviorCanJoinAllSpaces 不会对我有任何好处,因为我必须在启动时做大量工作,所以我必须从一开始就与目标处于同一空间。

最佳答案

我认为您可以使用 CGWindow.h. 中的 API 来完成此操作.
具体参见CGWindowListCopyWindowInfo()kCGWindowWorkspace .

我使用这些 API 来执行各种类型的操作,例如获取窗口内容、窗口框架等...

如果这不起作用,那么您可能想尝试这个私有(private) API:

 extern CGSError CGSGetWindowWorkspace(const CGSConnectionID cid,
CGSWindowID wid,
CGSWorkspaceID *workspace);

诀窍是获取目标进程的连接 ID。

关于Cocoa 可访问性 API 和空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2089852/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com