问题描述
安装 Big Sur 更新后的 MacOS。非常感谢您对此的任何帮助。
之前:
调用 java.awt.robot.createScreenCapture
结果:
当前可见的截图
之后:
调用 java.awt.robot.createScreenCapture
结果:
桌面截图
测试这个的简单代码:
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class ScreenCaptureTest {
public static void main(String[] args) throws IOException,AWTException {
Robot robot = new Robot();
BufferedImage image = robot.createScreenCapture(new Rectangle(0,800,500));
File file = new File("screenCapture.png");
ImageIO.write(image,"png",file);
// Captures part of desktop,not current windows in focus :(
}
}
解决方法
有一个解决方法可以满足我的需求。截取当前焦点(而不是桌面)的屏幕截图。
可能会帮助别人。
Robot robot = new Robot();
robot.delay(200);
robot.keyPress(KeyEvent.VK_META);
robot.keyPress(KeyEvent.VK_SHIFT);
robot.keyPress(KeyEvent.VK_3);
robot.keyRelease(KeyEvent.VK_3);
robot.keyRelease(KeyEvent.VK_SHIFT);
robot.keyRelease(KeyEvent.VK_META);
robot.delay(200);
renameCaptureAs(filename);