java吧 关注:1,240,516贴子:12,712,020
  • 8回复贴,共1

今无聊的时候发现个问题。

只看楼主收藏回复



1楼2015-09-14 19:55回复
    代码如下:


    2楼2015-09-14 19:55
    回复
      import java.awt.Desktop;
      import java.awt.Dimension;
      import java.awt.Rectangle;
      import java.awt.Robot;
      import java.awt.Toolkit;
      import java.awt.event.KeyEvent;
      import java.awt.image.BufferedImage;
      import java.io.File;
      import javax.imageio.ImageIO;
      public class CaptureScreen {
      public static void captureScreen(String fileName, String folder) throws Exception {
      Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
      Rectangle screenRectangle = new Rectangle(screenSize);
      Robot robot = new Robot();
      robot.delay(3000);
      for(int i=0;i<10000;i++){
      robot.keyPress(KeyEvent.VK_9);
      }
      BufferedImage image = robot.createScreenCapture(screenRectangle);
      //保存路径
      File screenFile = new File(fileName);
      if (!screenFile.exists()) {
      screenFile.mkdir();
      }
      File f = new File(screenFile, folder);
      ImageIO.write(image, "png", f);
      //自动打开
      if (Desktop.isDesktopSupported()
      && Desktop.getDesktop().isSupported(Desktop.Action.OPEN))
      Desktop.getDesktop().open(f);
      }
      public static void main(String[] args) {
      try {
      captureScreen("F:\\你好","11.png");
      } catch (Exception e) {
      e.printStackTrace();
      }
      }
      }


      3楼2015-09-14 19:55
      回复
        简单说一下就是 for循环键盘输出10000个9.然后执行截屏。但是截屏显示它并没有执行完。这是为什么?是那里的延时


        4楼2015-09-14 19:57
        回复
          这是他输出完9之后我手动暂停的计时器。可能会慢了不到1s吧。但是5s的延时是那里的 问题。很想知道


          5楼2015-09-14 19:59
          回复
            人呢?


            6楼2015-09-14 20:01
            回复
              @╱―★神★―╲


              7楼2015-09-14 20:02
              回复
                @windsun_ul


                8楼2015-09-14 20:03
                回复
                  技术贴一般水不到经验.真想讨论,时间测试请用junit.


                  IP属地:湖南9楼2015-09-14 20:14
                  回复