【问题标题】:Is there someway to get reference to another application's window from your app?有没有办法从您的应用程序中获取对另一个应用程序窗口的引用?
【发布时间】:2014-09-06 11:49:07
【问题描述】:

我正在做一个实验项目,我想知道您是否可以打开一个外部应用程序并引用它的窗口。

如果我使用 NSWorkspace 来启动像 TextEdit 这样的应用程序,有没有办法从我的应用程序中获取有关 TextEdit 窗口的信息?然后就可以操纵它了。

我所说的操作是指能够更改样式掩码、更改标题或删除窗口的阴影。诸如此类。

【问题讨论】:

  • 以什么方式操作一个TextEdit窗口?如果您正在讨论向 TextEdit 文档发送一个或多个文本字符串,您可以使用 AppleScript 创建一个包含您选择的字符串的新文档。
  • @ElTomato,像改变样式掩码、标题、切换是否可以关闭或隐藏一样进行操作;类似的东西。 AppleScript 能做到吗?

标签: objective-c macos swift


【解决方案1】:

实现此目的的一种方法是使用:

AXUIElementRef

一个例子可能是想要获取 CGWindowIDWindow Role 可访问性对象:

extern "C" AXError _AXUIElementGetWindow(AXUIElementRef, CGWindowID* out);

这将启用通过 Accessibility API 检索窗口信息的能力。

更多信息:AXUIElement Header Reference

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-15
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 2019-03-22
    • 1970-01-01
    相关资源
    最近更新 更多