从应用程序中获取图像

时间:2017-03-11 22:42:13

标签: java windows user-interface

很抱歉,这个问题非常广泛,但我还不知道如何解决这个问题。

在Java中,我如何获得Windows应用程序以图像形式显示的内容?

我希望图像的内容只包含一个应用程序窗口的框架,而不是整个监视器。

我认为从窗口标题获取应用程序窗口可能是一个开始,但Java是否可以访问其他进程的GUI?

1 个答案:

答案 0 :(得分:0)

您在纯Java中可以做的最好的事情是使用Robot类来捕获指定的矩形。以下Q& A显示了如何...对于矩形是整个屏幕的情况。

(这适用于所有非无头Java SE平台。)

这很容易。困难的是弄清楚要截取的矩形。 Java库不提供API来查找有关"其他"的屏幕位置的信息。应用。要查找此类信息,您的Java应用程序需要通过本机库或外部实用程序命令与本机OS进行交互。这将不可避免地是特定于平台的...意味着它将破坏Mac和Linux,也可能破坏其他版本的Windows。

我根本不会尝试在Java中这样做。相反,我会寻找一个可以作为外部应用程序运行的特定于操作系统的屏幕截图应用程序;例如使用Process.exec。或者,我会在C#中找出如何编写这样的应用程序。

  

我认为从窗口标题获取应用程序窗口可能是一个开始,但Java是否可以访问其他进程的GUI?

不,不。