java.awt.Robot里面的游戏? [英] java.awt.Robot inside games?

查看:266
本文介绍了java.awt.Robot里面的游戏?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用下面的代码模拟击键。当我打开记事本它工作正常,但当我打开我想要使用它的游戏时,它什么也没做。所以击键似乎不起作用。我尝试模拟鼠标移动和点击,这些操作确实有效。有谁知道如何解决这个问题?

I'm trying to simulate a keystroke with the code below. When I open notepad it works fine but when I open the game in which I want to use it, it doesn't do anything. So keystrokes don’t seem to work. I tried to simulate mouse movement and clicks, those action do work. Does anyone know how to fix this problem?

我发现了这个问题,如何在游戏中使用java.awt.Robot?但我无法添加评论或任何内容。

I found this question, How can I use java.awt.Robot inside games? but I can't add a comment or anything.

package MyProject;

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;

public class KeyStroke {

    public static void main(String[] args) throws AWTException {

        Robot robot = new Robot();

        robot.delay(3000);

        robot.keyPress(KeyEvent.VK_Q);
        robot.keyPress(KeyEvent.VK_W);
        robot.keyPress(KeyEvent.VK_E);
        robot.keyPress(KeyEvent.VK_R);
        robot.keyPress(KeyEvent.VK_T);
        robot.keyPress(KeyEvent.VK_Y);

    }

}


推荐答案

您可能想要按下并释放按键来模拟击键,即您的当前代码将按住Q,W,E,R,T和Y直到触发释放。此外,您可能希望将它们按住一小段时间,因为当我做这样的事情时,这会给我带来一些问题。

You probably want to press and release the keys to simulate a keystroke, i.e. your current code will hold down Q, W, E, R, T and Y until a release is triggered. Also, you may want to hold them down for a small amount of time, because that caused some problems for me when I did something like this.

代码

package MyProject;

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;

public class KeyStroke {
    private static Robot robot;

    public static void main(String[] args) throws AWTException {
        robot = new Robot();
        robot.delay(3000);
        keystroke(KeyEvent.VK_Q);
        keystroke(KeyEvent.VK_W);
        keystroke(KeyEvent.VK_E);
        keystroke(KeyEvent.VK_R);
        keystroke(KeyEvent.VK_T);
        keystroke(KeyEvent.VK_Y);
    }

    private static void keystroke(int key) {
        robot.keyPress(key);
        robot.delay(100); // hold for a tenth of a second, adjustable
        robot.keyRelease(key);
    }
}

这篇关于java.awt.Robot里面的游戏?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆