首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过NSRunningApplication实例获取应用程序的主窗口

通过NSRunningApplication实例获取应用程序的主窗口
EN

Stack Overflow用户
提问于 2009-12-31 01:48:05
回答 3查看 4.4K关注 0票数 6

我正在观察通知,以获取刚刚失去焦点的应用程序。我最后得到了一个NSRunningApplication实例,它是从通知对象的userInfo字典键NSWorkspaceApplicationKey中获得的。

我在想,我可以从通知中获得应用程序的主窗口,但我不确定从哪里开始,因为NSRunningApplication似乎相当有限。任何帮助都将不胜感激。

顺便说一句,我用的是MacRuby,但答案不一定是MacRuby。

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-31 02:09:16

传统上,苹果在这类事情上是相当严格的。NSRunningApplication本身是在10.6中引入的,正如您所说的,它有一点局限性。根据您想要做什么,答案可能在Accessibility framework中,也可能是CGWindow API。您可以使用NSRunningApplication中的processIdentifier将其与这些API相匹配。

票数 5
EN

Stack Overflow用户

发布于 2009-12-31 01:58:31

获取其他应用程序的主窗口非常困难;它们甚至不能保证是Cocoa!它们可以是Carbon或Java,或者Qt,或者Mono...所以你没有办法获得另一个应用的NSWindow,除非你做了黑客攻击。你可以尝试Accessibility API来获取其他应用程序的窗口信息等,独立于所使用的框架,但它并不容易使用。

票数 3
EN

Stack Overflow用户

发布于 2009-12-31 03:00:36

除非应用程序选择通过AppleScript支持或其他方式加入IAC,否则您根本不会接触它的窗口或您自己的堆空间之外的任何其他东西。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1981453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档