我有一个在线部署的应用程序,目前它只能在 Windows 操作系统上按预期运行。我正在尝试制作也可以在 Mac OS 上运行的应用程序,但问题是所有最大化的应用程序(如 Finder 或 IDE 本身)都不包含在捕获中,它只是捕获了背景。 (请参阅从下面的代码中截取的屏幕截图)
我希望将打开或最大化的应用程序包含在屏幕截图中,但所有这些都无法使用下面的代码工作。
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.List;
public class ScreenCapture extends Application {
@Override
public void start(Stage primaryStage) {
captureScreenshot();
}
private void captureScreenshot() {
List<Screen> screens = Screen.getScreens();
for (int i = 0; i < screens.size(); i++) {
Screen screen = screens.get(i);
Rectangle2D bounds = screen.getBounds();
Robot robot = new Robot();
WritableImage screenshot = robot.getScreenCapture(null, bounds);
BufferedImage image = javafx.embed.swing.SwingFXUtils.fromFXImage(screenshot, null);
try {
ImageIO.write(image, "png", new File("screenshot" + i + ".png"));
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
}
}
public static void main(String[] args) {
launch(args);
}
}
我尝试在 Google、Youtube 甚至 chatgpt 上寻找答案,但找不到任何解决方案。