運行時,把輸入法關掉,切換成系統自帶的輸入法即可;
第二個類是自定義的鍵值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(300); // 按下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(20); for (String c : "class".split("")) { if (Character.isUpperCase(c.charAt(0))) { // 如果是大寫 // 輸入名字 // 按下彈起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(300); // 按下彈起回車鍵 robot.keyPress(KeyEvent.VK_ENTER); robot.keyRelease(KeyEvent.VK_ENTER); String automaton = "Automaton"; robot.setAutoDelay(20); for (String c : automaton.split("")) { if (Character.isUpperCase(c.charAt(0))) { // 如果是大寫 // 按下彈起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(300); // 按下彈起回車鍵 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(20); for (String c : "main".split("")) { if (Character.isUpperCase(c.charAt(0))) { // 如果是大寫 // 輸入名字 // 按下彈起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(300); // 按下彈起alt+/的快捷鍵 robot.keyPress(KeyEvent.VK_ALT); robot.keyPress(KeyEvent.VK_SLASH); robot.keyRelease(KeyEvent.VK_ALT); robot.keyRelease(KeyEvent.VK_SLASH); // 休眠500,過快自動提示可能不會出現 robot.delay(500); // 按下彈起回車鍵 robot.keyPress(KeyEvent.VK_ENTER); robot.keyRelease(KeyEvent.VK_ENTER); // 設置默認休眠時間,讓輸入字母快一點 robot.setAutoDelay(20); for (String c : "syso".split("")) { if (Character.isUpperCase(c.charAt(0))) { // 如果是大寫 // 按下彈起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(50); // 循環輸入Hellow Word for (String c : "Hellow Word,I am a skynet".split("")) { if (Character.isUpperCase(c.charAt(0))) { // 輸入名字 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); // } }