cocoa – 获取另一个应用程序窗口的唯一ID

cocoa – 获取另一个应用程序窗口的唯一ID,第1张

概述我是新手 Cocoa开发人员,我正在开发我的第一个应用程序.我想从任何应用程序的任何窗口读取一个唯一的标识符 – 无论是Cocoa还是Carbon. Cocoa应用程序使他们的窗口ID可用于AppleScript(尽管我确信通过正确的Objective C路径有更好的方法),但我正在尝试从Adobe应用程序中的文档访问窗口ID.这似乎更棘手.我在参考库中似乎找到的所有内容都是 HIWindowGe 我是新手 Cocoa开发人员,我正在开发我的第一个应用程序.我想从任何应用程序的任何窗口读取一个唯一的标识符 – 无论是Cocoa还是Carbon. Cocoa应用程序使他们的窗口ID可用于AppleScript(尽管我确信通过正确的Objective C路径有更好的方法),但我正在尝试从Adobe应用程序中的文档访问窗口ID.这似乎更棘手.我在参考库中似乎找到的所有内容都是 HIWindowGetCGWindowID:

“当创建窗口时,此函数返回窗口服务器分配的窗口ID.窗口ID通常不适用于任何其他Carbon函数,但可以与需要窗口ID的其他Mac OS X函数一起使用,例如函数在OpenGL中.“

这可以用来从我的程序中获取ID吗?或者它只是一个可以在一个应用程序中使用的功能?

如果有人能指出我正确的方向,我将永远感激不尽.

解决方法 函数HIWindowGetCGWindowID()只能为您的某个应用程序窗口返回CGWindowID,因为来自其他程序的WindowRef在您的窗口中无效.

来自CGWindow.h的函数CGWindowListcopyWindowInfo()将返回一个字典数组,每个字典对应一个与您设置的条件相匹配的字典,包括其他应用程序中的条件.它只允许您通过给定窗口上方的窗口,给定窗口下方的窗口和“屏幕”窗口进行过滤,但返回的字典包含拥有应用程序的进程ID,您可以使用该进程ID将窗口与应用程序进行匹配.在每个返回的字典中,kCGWindowNumber键将指向窗口ID作为CFNumber.还有一个CGWindowListCreate()函数,它只返回一个CGWindowIDs数组.除了CGWindow.h头文件和Son of Grab示例代码之外,基本上没有这些函数的文档.此外,它只有10.5.

总结

以上是内存溢出为你收集整理的cocoa – 获取另一个应用程序窗口的唯一ID全部内容,希望文章能够帮你解决cocoa – 获取另一个应用程序窗口的唯一ID所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1006822.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存