java开发按键精灵_一个使用JAVA编写的类似按键精灵的程序

高承望
2023-12-01

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){

e.printStackTrace();

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 = 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("按键")){

for(int k=1;k

{

//获得按键种类

char c = data[k].toLowerCase().charAt(0);

//按键

r.keyPress(c);

//释放

r.keyRelease(c);

r.setAutoDelay(100);

}

}else if(data[0].equals("暂停")){

//获得暂停时间

int time = Integer.parseInt(data[1]);

//暂停

r.setAutoDelay(time);

}else if(data[0].equals("点击")){

r.mousePress(InputEvent.BUTTON1_MASK);

r.mouseRelease(InputEvent.BUTTON1_MASK);

}else if(data[0].equals("退格"))

{

int n = Integer.parseInt(data[1]);

for(int k=0;k

{

r.keyPress(KeyEvent.VK_BACK_SPACE);

r.keyRelease(KeyEvent.VK_BACK_SPACE);

r.setAutoDelay(100);

}

}

}

}catch(Exception e){

e.printStackTrace();

}

}

}

脚本文件test.t

暂停 1000

移动 600 1004

点击

移动 761 442

点击

退格 3

按键 1 2 3

 类似资料: