Цикл, который вводил бы случайный символ, используя robot.keyPress - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь написать случайный символ, используя robot.keyPress.

До сих пор я открыл блокнот, написал в нем и сохранил его.Если я запускаю эту программу в цикле, она всегда сохраняет блокнот с тем же именем и, следовательно, заменяет предыдущее.

Я хочу сохранить несколько блокнотов (с разными именами), возможно, набрав случайную букву перед сохранениемэто.

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

Этот вопрос не столько о java.awt.robot, сколько о генерации случайных значений.Более простое решение может быть таким:

Random rnd = new Random();
int key = KeyEvent.VK_UNDEFINED;
while (key < KeyEvent.VK_A || key > KeyEvent.VK_Z) {
    key = rnd.nextInt();
}
robot.keyPress(key);

Чтобы избежать бесполезного зацикливания, используйте это:

Random rnd = new Random();
final int range = (KeyEvent.VK_Z + 1) - KeyEvent.VK_A;
int key = Math.abs(rnd.nextInt()) % range;
robot.keyPress(key);
0 голосов
/ 18 июня 2019

Чтобы Robot выполнял случайное нажатие клавиши быстрым и грязным способом, вам нужно сначала составить список приемлемых констант KeyEvent (a-zA-Z0-9 и т. Д.) Предполагая, что вы составите этот список вместе :

int[] keys = new int[]{KeyEvent.VK_A, KeyEvent.VK_B, ... }; // Your list of KeyEvent character constants here, adapt as desired. 

// Start optional for loop here if you want more than 1 random character
int randomValue = ThreadLocalRandom.current().nextInt(0, keys.length);

Robot.keyPress(keys[randomValue]);

Настройтесь на свои нужды.

...