1

今私が持っているのはこれですが、現時点では文字列が実際にそこにある前にスクリーンショットを撮るので、スクリーンショットがあまりにも早く撮られてしまいます

        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()がないと、すべてが非常に迅速に行われるため、最後に撮影された画像が返されるようです。

ありがとう!

4

0 に答える 0