【问题标题】:Robot paste from Clipboard types "v"来自剪贴板类型“v”的机器人粘贴
【发布时间】:2018-03-04 21:03:47
【问题描述】:

(OSX) 我正在尝试粘贴字符串“Hello World!”从我的剪贴板到一个单独的应用程序。字符串被复制到我的剪贴板,我可以手动粘贴它,但机器人只输入“v”,而不是同时按下 VK_META + VK_V 键。

public static void sendString() throws Exception {
    Thread.sleep(3000);
    String text = "Hello World!";
    StringSelection stringSelection = new StringSelection(text);
    Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
    clipboard.setContents(stringSelection, stringSelection);
    try {
        Robot robot = new Robot();
        robot.keyPress(KeyEvent.VK_META);
        robot.keyPress(KeyEvent.VK_V);
        robot.keyRelease(KeyEvent.VK_V);
        robot.keyRelease(KeyEvent.VK_META);
    } catch(java.awt.AWTException awte) {
        System.out.println("AWTException");
    }
}

【问题讨论】:

标签: java


【解决方案1】:

为了保证命令的顺序,在它们之间添加一个延迟:

try{
    Robot robot = new Robot();
    robot.keyPress(KeyEvent.VK_META);
    robot.delay(500);                    // 200~500
    robot.keyPress(KeyEvent.VK_V);
    robot.keyRelease(KeyEvent.VK_V);
    robot.keyRelease(KeyEvent.VK_META);
} catch(java.awt.AWTException awte) {
    System.out.println("AWTException");
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-07
    • 2016-01-30
    • 2017-12-23
    • 2015-07-29
    • 2013-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多