Java 自动按键,以及cmd脚本调用

使用Java 的辅助测试按键模块

Java代码

Robot,KeyEvent

main.java


import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.lang.reflect.Field;

public class Main {

    public static void main(String[] args) throws Exception {
        int[] keys = new int[args.length];
        for(int i=0;i<args.length;i++) {
            keys[i] = getValue(args[i]);
        }
        PressKeyUtils pku = new PressKeyUtils();
        pku.Press(keys);
    }

    public static int getValue(String key) {
        Class<KeyEvent>  clazz = KeyEvent.class;
        try {
            Field field = clazz.getField("VK_"+key.toUpperCase());
            return field.getInt(null);
        } catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
            e.printStackTrace();
        }
        return -1;
    }

}

class PressKeyUtils {

    Robot r = null;

    public PressKeyUtils() {
        try {
            r = new Robot();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
    // ctrl+ key art + key
    public void Press(int... keys) {
        for(int key:keys) {
            if(key==-1) {
                new Exception("按键不支持:").printStackTrace();
                return;
            }
        }
        try {
            r = new Robot();
            int beginIndex=0;
            for (;beginIndex<keys.length;beginIndex++) {
                r.keyPress(keys[beginIndex]);
            }
            int endIndex = keys.length - 1;
            for (; endIndex >= 0; endIndex--) {
                r.keyRelease(keys[endIndex]);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

场景

脚本自动打开文件,并确认、保存

aoto.bat

start /b doc.docx
java -jar AutoTab.jar tab                           
java -jar AutoTab.jar tab
java -jar AutoTab.jar enter
:: 等待十秒后,继续向下执行
choice /t 10 /d y /n >nul
java -jar AutoTab.jar control s
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值