运行时,把输入法关掉,切换成系统自带的输入法即可;

第二个类是自定义的键值Map集合,主要是为了方便输入字符串,有需要的可以自行添加;

主要的代码如下,会创建一个名称为Automaton.java的类,并输出"Hellow Word,I am a skynet"

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.io.IOException; public class Hellow {
public static void main(String[] args) throws AWTException, InterruptedException, IOException { // 创建机器人
Robot robot = new Robot();
// 设置默认休眠时间
robot.setAutoDelay(); // 按下alt键
robot.keyPress(KeyEvent.VK_ALT);
// 按下shift键
robot.keyPress(KeyEvent.VK_SHIFT);
// 按下n键
robot.keyPress(KeyEvent.VK_N); robot.keyRelease(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_SHIFT);
robot.keyRelease(KeyEvent.VK_N); // 连续两次上键
robot.keyPress(KeyEvent.VK_UP);
robot.keyRelease(KeyEvent.VK_UP); // 按下弹起回车键
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER); // 设置默认休眠时间20毫秒
robot.setAutoDelay();
for (String c : "class".split("")) {
if (Character.isUpperCase(c.charAt())) {
// 如果是大写
// 输入名字
// 按下弹起CapsLock键,为了切换大小写
robot.keyPress(KeyEvent.VK_CAPS_LOCK);
robot.keyRelease(KeyEvent.VK_CAPS_LOCK);
// 循环每个字符,根据字符取出map中存储的键值
robot.keyPress(KeyMap.keyMap.get(c.toUpperCase()));
robot.keyRelease(KeyMap.keyMap.get(c.toUpperCase()));
// 按下弹起CapsLock键,切换回原来的大小写
robot.keyPress(KeyEvent.VK_CAPS_LOCK);
robot.keyRelease(KeyEvent.VK_CAPS_LOCK);
} else {
// 如果是小写
// 循环每个字符,根据字符取出map中存储的键值
robot.keyPress(KeyMap.keyMap.get(c.toUpperCase()));
robot.keyRelease(KeyMap.keyMap.get(c.toUpperCase()));
}
}
// 设置默认休眠时间300毫秒
robot.setAutoDelay();
// 按下弹起回车键
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER); String automaton = "Automaton";
robot.setAutoDelay();
for (String c : automaton.split("")) {
if (Character.isUpperCase(c.charAt())) {
// 如果是大写
// 按下弹起CapsLock键,为了切换大小写
robot.keyPress(KeyEvent.VK_CAPS_LOCK);
robot.keyRelease(KeyEvent.VK_CAPS_LOCK);
// 循环每个字符,根据字符取出map中存储的键值
robot.keyPress(KeyMap.keyMap.get(c.toUpperCase()));
robot.keyRelease(KeyMap.keyMap.get(c.toUpperCase()));
// 按下弹起CapsLock键,切换回原来的大小写
robot.keyPress(KeyEvent.VK_CAPS_LOCK);
robot.keyRelease(KeyEvent.VK_CAPS_LOCK);
} else {
// 如果是小写
// 循环每个字符,根据字符取出map中存储的键值
robot.keyPress(KeyMap.keyMap.get(c.toUpperCase()));
robot.keyRelease(KeyMap.keyMap.get(c.toUpperCase()));
}
}
robot.setAutoDelay();
// 按下弹起回车键
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER); // 连续三次下键
robot.keyPress(KeyEvent.VK_DOWN);
robot.keyRelease(KeyEvent.VK_DOWN);
robot.keyPress(KeyEvent.VK_DOWN);
robot.keyRelease(KeyEvent.VK_DOWN);
robot.keyPress(KeyEvent.VK_DOWN);
robot.keyRelease(KeyEvent.VK_DOWN); // 创建main方法
// 设置默认休眠时间,让输入字母快一点
robot.setAutoDelay();
for (String c : "main".split("")) { if (Character.isUpperCase(c.charAt())) {
// 如果是大写
// 输入名字
// 按下弹起CapsLock键,为了切换大小写
robot.keyPress(KeyEvent.VK_CAPS_LOCK);
robot.keyRelease(KeyEvent.VK_CAPS_LOCK);
// 循环每个字符,根据字符取出map中存储的键值
robot.keyPress(KeyMap.keyMap.get(c.toUpperCase()));
robot.keyRelease(KeyMap.keyMap.get(c.toUpperCase()));
// 按下弹起CapsLock键,切换回原来的大小写
robot.keyPress(KeyEvent.VK_CAPS_LOCK);
robot.keyRelease(KeyEvent.VK_CAPS_LOCK);
} else {
// 如果是小写
// 循环每个字符,根据字符取出map中存储的键值
robot.keyPress(KeyMap.keyMap.get(c.toUpperCase()));
robot.keyRelease(KeyMap.keyMap.get(c.toUpperCase()));
}
}
// 设置休眠时间为300毫秒
robot.setAutoDelay();
// 按下弹起alt+/的快捷键
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_SLASH);
robot.keyRelease(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_SLASH);
// 休眠500,过快自动提示可能不会出现
robot.delay();
// 按下弹起回车键
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER); // 设置默认休眠时间,让输入字母快一点
robot.setAutoDelay();
for (String c : "syso".split("")) {
if (Character.isUpperCase(c.charAt())) {
// 如果是大写
// 按下弹起CapsLock键,为了切换大小写
robot.keyPress(KeyEvent.VK_CAPS_LOCK);
robot.keyRelease(KeyEvent.VK_CAPS_LOCK);
// 循环每个字符,根据字符取出map中存储的键值
robot.keyPress(KeyMap.keyMap.get(c.toUpperCase()));
robot.keyRelease(KeyMap.keyMap.get(c.toUpperCase()));
// 按下弹起CapsLock键,切换回原来的大小写
robot.keyPress(KeyEvent.VK_CAPS_LOCK);
robot.keyRelease(KeyEvent.VK_CAPS_LOCK);
} else {
// 如果是小写
// 循环每个字符,根据字符取出map中存储的键值
robot.keyPress(KeyMap.keyMap.get(c.toUpperCase()));
robot.keyRelease(KeyMap.keyMap.get(c.toUpperCase()));
}
}
// 按下弹起alt+/的快捷键
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_SLASH);
robot.keyRelease(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_SLASH);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER); robot.keyPress(KeyEvent.VK_SHIFT);
robot.keyPress(KeyEvent.VK_QUOTE);
robot.keyRelease(KeyEvent.VK_SHIFT);
robot.keyRelease(KeyEvent.VK_QUOTE);
// 休眠50,过快自动提示可能不会出现
robot.delay();
// 循环输入Hellow Word
for (String c : "Hellow Word,I am a skynet".split("")) {
if (Character.isUpperCase(c.charAt())) {
// 输入名字
robot.keyPress(KeyEvent.VK_CAPS_LOCK);
robot.keyRelease(KeyEvent.VK_CAPS_LOCK);
robot.keyPress(KeyMap.keyMap.get(c.toUpperCase()));
robot.keyRelease(KeyMap.keyMap.get(c.toUpperCase()));
robot.keyPress(KeyEvent.VK_CAPS_LOCK);
robot.keyRelease(KeyEvent.VK_CAPS_LOCK);
} else {
robot.keyPress(KeyMap.keyMap.get(c.toUpperCase()));
robot.keyRelease(KeyMap.keyMap.get(c.toUpperCase()));
}
}
// 保存 按下弹起ctrl+s
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_S);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_S);
// 运行 按下弹起ctrl+F11
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_F11);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_F11); }
}

下面是储存键值的map类,只有一些常用的键值,有需要请自行添加

import java.awt.event.KeyEvent;
import java.util.HashMap;
import java.util.Map; public class KeyMap {
public static Map<String,Integer> keyMap;
static{
keyMap = new HashMap<String,Integer>();
//设置map的值
//数字
keyMap.put("1", KeyEvent.VK_1);
keyMap.put("2", KeyEvent.VK_2);
keyMap.put("3", KeyEvent.VK_3);
keyMap.put("4", KeyEvent.VK_4);
keyMap.put("5", KeyEvent.VK_5);
keyMap.put("6", KeyEvent.VK_6);
keyMap.put("7", KeyEvent.VK_7);
keyMap.put("8", KeyEvent.VK_8);
keyMap.put("9", KeyEvent.VK_9);
keyMap.put("0", KeyEvent.VK_0); //运算符
keyMap.put("/", KeyEvent.VK_SLASH);
keyMap.put("+", KeyEvent.VK_PLUS);
keyMap.put("-", KeyEvent.VK_MINUS);
keyMap.put(" ", KeyEvent.VK_SPACE);
keyMap.put("=", KeyEvent.VK_EQUALS); //特殊字符
keyMap.put(":", KeyEvent.VK_COLON);
keyMap.put(",", KeyEvent.VK_COMMA);
keyMap.put(".", KeyEvent.VK_PERIOD); //字母
keyMap.put("A",KeyEvent.VK_A);
keyMap.put("B",KeyEvent.VK_B);
keyMap.put("C",KeyEvent.VK_C);
keyMap.put("D",KeyEvent.VK_D);
keyMap.put("E",KeyEvent.VK_E);
keyMap.put("F",KeyEvent.VK_F);
keyMap.put("G",KeyEvent.VK_G);
keyMap.put("H",KeyEvent.VK_H);
keyMap.put("I",KeyEvent.VK_I);
keyMap.put("J",KeyEvent.VK_J);
keyMap.put("K",KeyEvent.VK_K);
keyMap.put("L",KeyEvent.VK_L);
keyMap.put("M",KeyEvent.VK_M);
keyMap.put("N",KeyEvent.VK_N);
keyMap.put("O",KeyEvent.VK_O);
keyMap.put("P",KeyEvent.VK_P);
keyMap.put("Q",KeyEvent.VK_Q);
keyMap.put("R",KeyEvent.VK_R);
keyMap.put("S",KeyEvent.VK_S);
keyMap.put("T",KeyEvent.VK_T);
keyMap.put("U",KeyEvent.VK_U);
keyMap.put("V",KeyEvent.VK_V);
keyMap.put("W",KeyEvent.VK_W);
keyMap.put("X",KeyEvent.VK_X);
keyMap.put("Y",KeyEvent.VK_Y);
keyMap.put("Z",KeyEvent.VK_Z);
//
}
}

java使用Robot类在eclipse上实现自动编写代码的更多相关文章

  1. java如何在eclipse编译时自动生成代码

    用eclipse写java代码,自动编译时,如何能够触发一个动作,这个动作是生成本项目的代码,并且编译完成后,自动生成的代码也编译好了, java编辑器中就可以做到对新生成的代码的自动提示? 不生成代 ...

  2. 在eclipse上集成安装阿里巴巴代码规约P3C插件

    在eclipse上集成安装阿里巴巴代码规约P3C插件 参照网址: https://jingyan.baidu.com/article/2d5afd6923e78b85a3e28e5e.html 首先进 ...

  3. Java关于Robot类的使用以及远程桌面的实现

    利用Robot实现效果是运行之后鼠标自动定位到整个屏幕坐标系的(635,454)位置,输入wangtianze package com.wtz.util; import java.awt.AWTExc ...

  4. Java关于Robot类的使用

    利用Robot类实现自动操作,实现效果是运行之后鼠标自动定位到整个屏幕坐标系的(635,454)位置,输入wangtianze package com.wtz.util; import java.aw ...

  5. java类在eclipse上打jar包,Linux上成功运行的实例

    1 eclipse下的java项目结构如下图所示: 2 打包的步骤如下: 3 修改minifest.mf文件:  4 .上传需要的三方jar包们和主类打的jar(案例是topV.jar)并且执行jav ...

  6. java http工具类和HttpUrlConnection上传文件分析

    利用java中的HttpUrlConnection上传文件,我们其实只要知道Http协议上传文件的标准格式.那么就可以用任何一门语言来模拟浏览器上传文件.下面有几篇文章从http协议入手介绍了java ...

  7. Selenium(基于JAVA语言)-》在eclipse上运行web项目在Mac系统上启动时提示nodename nor servname provided解决办法

    最近使用eclipse进行自动化测试时,遇到一种情况,无法调起浏览器,且有报错,如下: org.openqa.selenium.WebDriverException: failed to lookup ...

  8. JAVA中使用FTPClient实现文件上传下载实例代码

    一.上传文件 原理就不介绍了,大家直接看代码吧 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ...

  9. Eclipse 中怎样自动格式化代码?

    首先 有一个 检查代码风格的工具叫checkstyle,具体怎么下载,请自行百度.. 当你在eclipse安装好 checkstyle后,对于使用google标准的人来说,选择一个项目,右键,点击ch ...

随机推荐

  1. LeetCode:有效的括号【20】

    LeetCode:有效的括号[20] 题目描述 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. ...

  2. vue --- axios , vuex

    一 . 内容回顾 1.webpack(前端中工作,项目上线之前对整个前端项目优化) - entry:整个项目的程序入口(main.js或index.js): - output:输出的出口: - loa ...

  3. es6技巧写法

    为class绑定多个值 普通写法 :class="{a: true, b: true}" 其他 :class="['btn', 'btn2', {a: true, b: ...

  4. SQL 数据类型 numeric varchar char

    Numeric(10,2) 指字段是数字型,长度为10 小数为两位的 简要描述一下SQL中的五种数据类型:字符型,文本型,数值型,逻辑型和日期型 字符型 VARCHAR VS CHAR VARCHAR ...

  5. process调用protothread机制的相关宏定义——用HelloWorld进程诠释

    一.HelloWorld例子 #include "contiki.h" #include <stdio.h> /* For printf() */ /*-------- ...

  6. LoadRunner监控图表与配置(二)监控运行状况和交易状况

    1.在左侧Available Graphs视图中展开Runtime Graphs节点,选择其中一种类型添加至控制器运行标签的界面. 2.在图中显示的空白区域点击右键,在弹出的快捷菜单中选择config ...

  7. MySQL上周新增激活用户在上周下单情况_20161107周一

    上周新增激活用户在上周下单情况 1.上周激活用户明细 #上周激活用户明细 SELECT a.城市,a.用户ID,a.用户名称,b.用户地址,b.联系电话,a.订单日期,c.年周,c.上周一,a.订单I ...

  8. 【前端】jQuery DataTables 使用手册(精简版)

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/5182940.html 前排提醒,这个插件能不用就不用,那么多好的插件等着你,为什么要用它呢?就算用easyui的 ...

  9. VirtualBox文件系统已满--磁盘扩容

    第1步:为virtualbox虚拟电脑扩容 进入命令行,以Windows系统为例 (特别注意空格和中文) 1.启动CMD命令行,进入VirtualBox的安装目录.如 运行:cmd C:\Users\ ...

  10. 误删除$ORACLE_HOME/dbs下的参数文件、密码文件,如何快速重建

    [oracle@11g dbs]$ pwd/home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs[oracle@11g dbs]$ lltotal 24 ...