【问题标题】:How to get r.keypress to run a loop?如何让 r.keypress 运行循环?
【发布时间】:2022-10-09 15:22:58
【问题描述】:

我有一个用 r.keypress 编写的简单脚本:

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
public class robot {

public static void main(String[] args) throws AWTException, InterruptedException {
    // TODO Auto-generated method stub
    Robot r = new Robot();
    r.keyPress(KeyEvent.VK_H);
    r.keyPress(KeyEvent.VK_A);
    r.keyPress(KeyEvent.VK_P);
    r.keyPress(KeyEvent.VK_P);
    r.keyPress(KeyEvent.VK_Y);
    r.keyPress(KeyEvent.VK_SPACE);
    r.keyPress(KeyEvent.VK_B);
    r.keyPress(KeyEvent.VK_I);
    r.keyPress(KeyEvent.VK_R);
    r.keyPress(KeyEvent.VK_T);
    r.keyPress(KeyEvent.VK_H);
    r.keyPress(KeyEvent.VK_D);
    r.keyPress(KeyEvent.VK_A);
    r.keyPress(KeyEvent.VK_Y);
}
}

问题是双重的。首先,它不会输出双字符,keyrelease 只是抛出未处理的异常。我不知道为什么它不起作用,但 KeyRelease 现在可以作为
r.keyRelease(KeyEvent.VK_SPACE); 其次,我想用它来输出一系列数字,即 1、2、3 等一直到 1000000。这可以通过按键实现吗,如果不是,在我的光标所在的地方仍然使用它的替代方法是什么?

【问题讨论】:

    标签: loops keypress


    【解决方案1】:

    经过几天的混搭代码,我实际上自己解决了这个问题。然而,它非常,非常杂乱无章,大约每 300 行滑动一次。此外,如果您将 ThreadSleeps 降低到 10 毫秒以下,它会崩溃大约 200 行。它需要两个 ThreadSleeps 或几乎立即崩溃。

    import java.awt.AWTException;
    import java.awt.Robot;
    import java.awt.Toolkit;
    import java.awt.datatransfer.Clipboard;
    import java.awt.datatransfer.StringSelection;
    import java.awt.event.KeyEvent;
    import java.util.concurrent.TimeUnit;
    public class robot {
    static int i;
    public static void main(String[] args) throws AWTException, InterruptedException{
        // TODO Auto-generated method stub
    for (int i=39000; i< 40000; i+=1) {
    
        String str = "age -100 " + i;
        Robot r = new Robot();
        Thread.sleep(10);
        String text = str;
        StringSelection stringSelection = new StringSelection(text);
        Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
        clipboard.setContents(stringSelection, stringSelection);
        Thread.sleep(10);
        Robot robot = new Robot();
        robot.keyPress(KeyEvent.VK_CONTROL);
        robot.keyPress(KeyEvent.VK_V);
        robot.keyRelease(KeyEvent.VK_V);
        robot.keyRelease(KeyEvent.VK_CONTROL);
        robot.keyPress(KeyEvent.VK_ENTER);
        robot.keyRelease(KeyEvent.VK_ENTER);
        } 
    
    }
    
    
    
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多