0

我正在尝试自动化屏幕截图等。为了实现这一点,我有一个 bash 脚本来完成其他工作,然后使用该java -jar命令调用我的 jar。

在我的 Java 代码中,我使用 java.awt.Robot 来捕获屏幕截图。本质上,这一点是我的代码。

BufferedImage image = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
ImageIO.write(image, "png", new File("C:\\Screenshot\\CurrentScreenshot.png"));

当我在本地 IDE 上运行 Java 代码并捕获屏幕截图时,这可以正常工作。但是,当我打包我的 jar、部署它并运行我的 bash 脚本时,它只会捕获一个完全灰色的空白屏幕截图。图像的尺寸为全屏 (136x768)。不知道为什么会这样。

我通过 PuTTY 连接到我的服务器,所以这可能是由于这个原因?根据我在互联网上收集到的帮助,我在我的机器(运行 Windows 7 的 VM)上安装了 Xming,并启动了 Xserver。我将 PuTTY 配置为允许 X11 转发。但我仍然无法让屏幕截图正常工作。(我的配置可能是一个潜在的问题吗?)

我也尝试使用这段代码,但令人惊讶的是它对我不起作用。

Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_PRINTSCREEN);
robot.delay(100);
robot.keyRelease(KeyEvent.VK_PRINTSCREEN);
robot.keyRelease(KeyEvent.VK_ALT);

由于工作场所的限制,我无法使用 ImageMagick 等。

关于为什么我得到灰色屏幕截图以及如何解决它的任何想法?

4

0 回答 0