鍵盤上0~9的ASCII
public static final int VK_0 = 0x30;
public static final int VK_1 = 0x31;
public static final int VK_2 = 0x32;
public static final int VK_3 = 0x33;
public static final int VK_4 = 0x34;
public static final int VK_5 = 0x35;
public static final int VK_6 = 0x36;
public static final int VK_7 = 0x37;
public static final int VK_8 = 0x38;
public static final int VK_9 = 0x39;
鍵盤上A~Z的ASCII
public static final int VK_A = 0x41;
public static final int VK_B = 0x42;
public static final int VK_C = 0x43;
public static final int VK_D = 0x44;
public static final int VK_E = 0x45;
public static final int VK_F = 0x46;
public static final int VK_G = 0x47;
public static final int VK_H = 0x48;
public static final int VK_I = 0x49;
public static final int VK_J = 0x4A;
public static final int VK_K = 0x4B;
public static final int VK_L = 0x4C;
public static final int VK_M = 0x4D;
public static final int VK_N = 0x4E;
public static final int VK_O = 0x4F;
public static final int VK_P = 0x50;
public static final int VK_Q = 0x51;
public static final int VK_R = 0x52;
public static final int VK_S = 0x53;
public static final int VK_T = 0x54;
public static final int VK_U = 0x55;
public static final int VK_V = 0x56;
public static final int VK_W = 0x57;
public static final int VK_X = 0x58;
public static final int VK_Y = 0x59;
public static final int VK_Z = 0x5A;
實現發送消息邏輯
public class SendQQMessage {
Clipboard clipboard;
public SendQQMessage(Clipboard clipboard) {
this.clipboard = clipboard;
}
public void sendQQMessage(Robot robot, String QQ, String message) throws InterruptedException, IOException {
//強行聊天的代碼:tencent://Message/?Uin=919433667&websiteName=www.oicqzone.com&Menu=yes
//強行加好友的代碼:tencent://AddContact/fromId=45&fromSubId=1&subcmd=all&uin=574201314&fuin=919433667&website=www.oicqzone.com
// String url = "http://wpa.qq.com/msgrd?v=3&uin=\""+QQ+"\"&site=qq&menu=yes";
String url = "tencent://message/?uin=" + QQ + "&Site=null&Menu=yes";//彈出對應的QQ聊天窗口
String cmd = "explorer \"" + url + "\"";
Process process = null;
try {
process = Runtime.getRuntime().exec(cmd);
// 等待程序執行結束並輸出狀態
process.waitFor();
//延遲2秒等待聊天框開啓
//延遲二秒,主要是爲了預留出打開窗口的時間,括號內的單位爲毫秒
robot.delay(1500);//
//如果速度參數想要追求極限<50將
//這兩行代碼註釋,默認從剪切板重複發送消息,次數爲出師表分割後的長度
clipboard.setContents(new StringSelection(message), null);
// 以下兩行按下了ctrl+v,完成粘貼功能
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
// 釋放ctrl按鍵,像ctrl,退格鍵,刪除鍵這樣的功能性按鍵,在按下後一定要釋放,不然會出問題。crtl如果按住沒有釋放,
// 在按其他字母按鍵是,敲出來的回事ctrl的快捷鍵。
robot.keyRelease(KeyEvent.VK_CONTROL);
// 延遲一秒再發送,不然會一次性全發佈出去,因爲電腦的處理速度很快,每次粘貼發送的速度幾乎是一瞬間,所以給人的感覺就是一次性發送了全部。
// 這個時間可以自己改,想幾秒發送一條都可以
robot.delay(500);
robot.keyPress(KeyEvent.VK_ENTER);// 回車
} catch (IOException e) {
System.out.println("請重新運行程序");
} finally {
assert process != null;
process.getErrorStream().close();
process.getInputStream().close();
process.getOutputStream().close();
}
}
}