今私が持っているのはこれですが、現時点では文字列が実際にそこにある前にスクリーンショットを撮るので、スクリーンショットがあまりにも早く撮られてしまいます
if(string_75_.contains("You have defeated ")) {
takeScreenshot(true);
}
これが私のプリントスクリーンルーチン全体です
static boolean takeScreenshot(boolean verbose){
try{
File file = getEmptyFile();
Wait(50);
ImageIO.write(getImage(), "png", file);
if (verbose) {
System.out.println("Screenshot saved as " + file.getName() + ".");
}
return true;
}
catch (IOException e) {
if (verbose)
System.out.print("Error saving screenshot.");
}
return false;
}
private static BufferedImage getImage() throws IOException {
try {
Robot robot = new Robot();
Wait(120);
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_PRINTSCREEN);
robot.keyRelease(KeyEvent.VK_PRINTSCREEN);
robot.keyRelease(KeyEvent.VK_ALT);
BufferedImage bufferedImage = (BufferedImage)getClipboard();
return bufferedImage;
} catch (AWTException e) {
BufferedImage bufferedImage = new BufferedImage(765,503 + 11, 1);
return bufferedImage;
}
}
ここでの主な問題は、待機によってアプリケーションが完全に停止することですが、それでもスクリーンショットを早く撮ることができません...どんな助けもありがたいです
クリップボードをクリアする方法もありますか?私のwait()がないと、すべてが非常に迅速に行われるため、最後に撮影された画像が返されるようです。
ありがとう!