从AppleScript访问Java应用程序中的本机windows?

从AppleScript访问Java应用程序中的本机windows?,java,macos,applescript,osx-mountain-lion,Java,Macos,Applescript,Osx Mountain Lion,我有一些基于Java的应用程序似乎在使用(在某种程度上)本机窗口,包括熟悉的窗口管理按钮,甚至全屏模式按钮。然而,我似乎无法使用传统方式从AppleScript访问这些窗口。有办法做到这一点吗 目前,我有一个在本地cocoa应用程序上运行良好的现有脚本,但当它尝试访问Java应用程序的windows时,却找不到任何脚本(计算窗口数将返回0) 以IntelliJ IDEA为例。如何访问各个窗口以对其执行操作(例如单击最小化或全屏按钮) 更新: 下面是一个适用于cocoa应用程序的快速示例,但不是J

我有一些基于Java的应用程序似乎在使用(在某种程度上)本机窗口,包括熟悉的窗口管理按钮,甚至全屏模式按钮。然而,我似乎无法使用传统方式从AppleScript访问这些窗口。有办法做到这一点吗

目前,我有一个在本地cocoa应用程序上运行良好的现有脚本,但当它尝试访问Java应用程序的windows时,却找不到任何脚本(计算窗口数将返回0)

以IntelliJ IDEA为例。如何访问各个窗口以对其执行操作(例如单击最小化或全屏按钮)

更新: 下面是一个适用于cocoa应用程序的快速示例,但不是Java应用程序。在这种情况下,我返回消息“每个窗口都不理解计数消息”


你唯一能告诉应用程序做你正在尝试的事情的时候是,该应用程序是否可以编写脚本,例如,它是否有applescript字典,该字典是否有你需要的命令。我怀疑您的java应用程序是可编写脚本的,所以这种方法不起作用

幸运的是,您需要一个窗口命令,因为系统事件理解窗口命令,并且通常可以为您提供进程窗口。试试这个。只需将流程的名称更改为所需的流程,然后查看它是否有效。如果没有的话,applescript就没有什么可以帮你的了

tell application "System Events"
    tell process "Safari"
        set wins to count of windows
    end tell
end tell
display dialog (wins as text)
仅供参考:如果你需要找到你的申请过程的名称,你可以使用这个

tell application "System Events" to return name of application processes

你唯一能告诉应用程序做你正在尝试的事情的时候是,该应用程序是否可以编写脚本,例如,它是否有applescript字典,该字典是否有你需要的命令。我怀疑您的java应用程序是可编写脚本的,所以这种方法不起作用

幸运的是,您需要一个窗口命令,因为系统事件理解窗口命令,并且通常可以为您提供进程窗口。试试这个。只需将流程的名称更改为所需的流程,然后查看它是否有效。如果没有的话,applescript就没有什么可以帮你的了

tell application "System Events"
    tell process "Safari"
        set wins to count of windows
    end tell
end tell
display dialog (wins as text)
仅供参考:如果你需要找到你的申请过程的名称,你可以使用这个

tell application "System Events" to return name of application processes

您还没有显示任何代码。通常有两种方式获取windows,1)从应用程序获取,2)使用系统事件从进程获取。如果两种方法都无法获得它们,那么applescript将无法实现,而且它们可能不是本机cocoa窗口。您还没有显示任何代码。通常有两种方式获取windows,1)从应用程序获取,2)使用系统事件从进程获取。如果两种方法都无法获得它们,那么applescript将无法获得它们,而且它们可能不是本机cocoa窗口。嗯,这似乎总是返回为0(至少在编写的示例中是这样)。嗯,这似乎总是返回为0(至少在编写的示例中是这样)。