@@ -0,0 +1,1344 @@
+package li.x1ang.jautomaiton;%0A%0Aimport java.awt.AWTException;%0Aimport java.awt.Robot;%0A%0A/**%0A * @author x1ang.li%0A * %0A * I got a coupon %0A *%0A */%0Apublic class MiniKeyTyper %7B%0A%09private final String PREFIX = %22f384%22;%0A    private final String SUFFIX = %22764663c81d1%22;%0A    private final int BREAK_TIME = 4 * 1000; // You need to take a break between each iteration to do something like clicking the %22Confirm%22 button and suppress error messages.    %0A%0A    private Robot robot;%0A    %0A%09public MiniKeyTyper() throws AWTException %7B%0A%09%09robot = new Robot();%0A%09%7D%0A%0A%09public void run() %7B%0A%09%09System.out.println(%22I am running%22);%0A%09%09robot.delay(3000);%0A%09%09for (int i=0; i%3C=9; i++) %7B%0A%09%09    string code_i = PREFIX + i + SUFFIX%0A%09%09%09System.out.println(%22We are about to type the code:%22 + code_i);%0A%09%09%09type(code_i);%0A%09%09%09robot.delay(BREAK_TIME);%0A%09%09%7D%0A%09%09System.out.println(%22I am finished running.%22);%0A%09%7D%0A%09%0A%09private void type(String s) %7B%0A%09%09byte%5B%5D bytes = s.getBytes();%0A%09%09for (byte b : bytes) %7B%0A%09%09%09int code = b;%0A%09%09%09%0A%09%09%09// keycode handles %5BA-Z%5D (which is ASCII decimal %5B65-90%5D)%0A%09%09%09if (code %3E 96 && code %3C 123)%0A%09%09%09%09code = code - 32;%0A%09%09%09%09%0A%09%09%09robot.delay(40);%0A%09%09%09robot.keyPress(code);%0A%09%09%09robot.keyRelease(code);%0A%09%09%7D%0A%09%7D%0A%0A%09public static void main(String%5B%5D args) %7B%0A%09%09MiniKeyTyper main;%0A%09%09try %7B%0A%09%09%09main = new MiniKeyTyper();%0A%09%09%09main.run();%0A%09%09%7D catch (AWTException e) %7B%0A%09%09%09e.printStackTrace();%0A%09%09%7D%0A%09%7D%0A%0A%7D%0A

Create MiniKeyTyper.java