Java模拟按键精灵?

我想用Java写一个类似按键精灵这样的程序,但是没有头绪,请高手指点啊,告诉我思路或方法就行,不用很详细。当然有空的话给我例子更好。

import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;

/**
* 支持脚本文件的按键控制程序
*/
public class KeySprite{
public static void main(String[] args){
String filename = "test.t";
try{
//读取配置文件
Vector v = readFile(filename);
//执行文件
parseVector(v);

}catch(IOException e){
System.out.println("配置文件错误");
}catch(Exception e){
System.out.println("其他错误");
}
}
/**
* 读取文件到Vector中
* @param filepath 文件路径
*/
public static Vector readFile(String filepath) throws IOException{
Vector v = new Vector();

//文件缓冲输入流
BufferedReader br = new BufferedReader(
new InputStreamReader(
new FileInputStream(filepath)));
//读取数据
String s = br.readLine();
while(s != null){
//添加到v
v.add(s);
//读取下一行
s = br.readLine();
}
//关闭输入流
br.close();
//返回数据
return v;
}

/**
* 解析读到的Vector,并执行对应的操作
* @param v Vector对象
*/
public static void parseVector(Vector v){
int size = v.size();

try{
//创建Robot对象
Robot r = new Robot();

for(int i = 0;i < size;i++){
String s = (String)v.get(i);
//分解
String[] data = s.split(" ");
//解析执行
if(data[0].equals("移动")){
//获得坐标
int x = Integer.parseInt(data[1]);
int y = Integer.parseInt(data[2]);
//移动
r.mouseMove(x,y);
}else if(data[0].equals("按键")){
//获得按键种类
char c = data[1].toLowerCase().charAt(0);
//按键
r.keyPress(c);
//释放
r.keyRelease(c);
}else if(data[0].equals("暂停")){
//获得暂停时间
int time = Integer.parseInt(data[1]);
//暂停
Thread.sleep(time);
}
}
}catch(Exception e){
e.printStackTrace();
}
}

}

脚本文件test.t

暂停 1000
移动 200 300
暂停 1000
移动 210 300
暂停 1000
移动 220 300
暂停 1000
移动 230 300
暂停 1000
移动 240 300
暂停 1000
移动 250 300
暂停 1000
移动 260 300
暂停 1000
移动 270 300
暂停 1000
移动 280 300
暂停 1000
移动 290 300
暂停 1000
移动 300 300
暂停 1000
移动 310 300
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-25
雨的味道 正解。。
关键是Robot类:
Robot robot = new Robot();
robot.mouseMove(400, 300);
robot.mousePress(MouseEvent.BUTTON1_MASK);
robot.mouseRelease(MouseEvent.BUTTON1_MASK);
以上代码能实现基本的点击功能,但是按键精灵的功能远不止这么简单,加油。本回答被网友采纳
相似回答