如何获取由Java程序打开的外部应用程序的坐标

时间:2019-05-08 13:16:42

标签: java windows screenshot

使用Java程序,我正在打开一个外部应用程序(例如:记事本)。如何获取屏幕截图/屏幕截图的外部应用程序的坐标/位置。

我可以拍摄整个窗口的屏幕截图,但不能用于特定的应用程序。

我已经尝试使用“机器人”进行屏幕捕获,但是由于无法找到应用程序窗口的位置和大小,因此无法捕获特定区域。

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.lang.reflect.Field;

public class AppCheck {

   public static void main(String[] args) {

      System.out.println("***********************");
      try {

          System.out.println("Opening notepad");
            Runtime runTime = Runtime.getRuntime();
            Process process = runTime.exec("notepad");
            try {
                int count=0;
                while(process.isAlive())
                {
                    System.out.println("process name : " + process.getClass().getName());
                    Field f = process.getClass().getDeclaredField("handle");
                    f.setAccessible(true);
                    long handl = f.getLong(process);
                    System.out.println("Process ID : " + handl);
                    Thread.sleep(1000);
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

            System.out.println("Closing notepad");
            process.destroy();          

      } catch (Exception ex) {
         System.out.println(ex);
      }
      System.out.println("************************************");
   }
}

0 个答案:

没有答案