我已经在网上找到Java代码,可以让我使用Robot类来完成各种事情。我当前正在使用它来尝试自动化需要重复输入文件名的数据库转储,在这种情况下是数字。不,我不能只在最后进行批处理文件重命名,他们必须单独命名。我不想这样做13,000次(我的数据库的大小),所以我试图自动化它。我需要的是我没有的机器人代码来输入For循环中的内容。我的代码如下:获取Java机器人以键入循环中的内容
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
public class RobotClicker
{
Robot robot = new Robot();
public static void main(String[] args) throws AWTException
{
new RobotClicker();
}
public RobotClicker() throws AWTException
{
robot.setAutoDelay(40);
robot.setAutoWaitForIdle(true);
robot.delay(4000);
robot.mouseMove(144, 400);
robot.delay(500);
leftClick();
robot.delay(500);
leftClick();
robot.delay(500);
for(int i = 856; i>858;i++){
String holding = "test ";
type(holding);
}
robot.mouseMove(450, 480);
robot.delay(500);
leftClick();
robot.delay(500);
leftClick();
robot.delay(1000);
System.exit(0);
}
private void leftClick()
{
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.delay(200);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.delay(200);
}
private void type(int i)
{
robot.delay(40);
robot.keyPress(i);
robot.keyRelease(i);
}
private void type(String s)
{
byte[] bytes = s.getBytes();
for (byte b : bytes)
{
int code = b;
// keycode only handles [A-Z] (which is ASCII decimal [65-90])
if (code > 96 && code < 123) code = code - 32;
robot.delay(40);
robot.keyPress(code);
robot.keyRelease(code);
}
}
}
文件名只是数字。我需要for循环来产生序列中的下一个数字,然后机器人输出它,重复ad nauseam。此时机器人进行移动和点击就好了,但没有任何类型。任何帮助将不胜感激。
有没有这样的一部分,我可以在我的for循环来解决我的问题?我完全不熟悉机器人类,我只是试图快速和肮脏地把一些东西放在一起来自动化这个过程。 – Inessaria
是的,我给你解决问题的代码。我演示了如何一次输入一个字符。更改您的for循环以调用字符串中每个字母的typeCharacter(...)方法。 – camickr
显然我不明白。我已经修改了我的代码,以便它包含您发布的typeCharacter方法,并将我的For循环更改为(int i = 0; i> 858; i ++){0};}}}}}} String hold = Integer.toString(i); \t机器人机器人=新机器人(); typeCharacter(robot,holding); \t } 它仍然没有输出任何东西。 – Inessaria