java中給多個微信好友自動發信息
阿新 • • 發佈:2020-10-29
package user.controller; import java.awt.*; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.StringSelection; import java.awt.datatransfer.Transferable; import java.awt.event.KeyEvent; public class T6 { private static Clipboard clip; private static Toolkit kit; // 建立Robot物件 private static Robot robot= null; public static void main(String[] args) throws InterruptedException { // 好友暱稱 String friendNickName = "檔案傳輸助手,紅塵沙漏";//多個好友暱稱 for(String name:friendNickName.split(",")) { searchMyFriendAndSend(name); } } private static void searchMyFriendAndSend(String friendNickName) throws InterruptedException { try { robot = new Robot(); } catch (AWTException e) { e.printStackTrace(); } //開啟微信 Ctrl+Alt+W assert robot != null; robot.keyPress(KeyEvent.VK_CONTROL); robot.keyPress(KeyEvent.VK_ALT); robot.keyPress(KeyEvent.VK_W); //釋放Ctrl按鍵,像Ctrl,退格鍵,刪除鍵這樣的功能性按鍵,在按下後一定要釋放 robot.keyRelease(KeyEvent.VK_CONTROL); robot.keyRelease(KeyEvent.VK_ALT); // 該延遲不能少,否則無法搜尋 robot.delay(1000); // Ctrl + F 搜尋指定好友 robot.keyPress(KeyEvent.VK_CONTROL); robot.keyPress(KeyEvent.VK_F); robot.keyRelease(KeyEvent.VK_CONTROL); // 將好友暱稱傳送到剪下板 Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard(); Transferable tText = new StringSelection(friendNickName); clip.setContents(tText, null); // 以下兩行按下了ctrl+v,完成貼上功能 robot.keyPress(KeyEvent.VK_CONTROL); robot.keyPress(KeyEvent.VK_V); robot.keyRelease(KeyEvent.VK_CONTROL); robot.delay(1000); robot.keyPress(KeyEvent.VK_ENTER); // 傳送訊息 sendMsg(); //開啟微信 Ctrl+Alt+W assert robot != null; robot.keyPress(KeyEvent.VK_CONTROL); robot.keyPress(KeyEvent.VK_ALT); robot.keyPress(KeyEvent.VK_W); //釋放Ctrl按鍵,像Ctrl,退格鍵,刪除鍵這樣的功能性按鍵,在按下後一定要釋放 robot.keyRelease(KeyEvent.VK_CONTROL); robot.keyRelease(KeyEvent.VK_ALT); } private static void sendMsg() throws InterruptedException { String[] mottoes = { // "我只愛你四天,春天夏天秋天冬天!", // "我只愛你三天,昨天,今天,明天!", // "我只愛你兩天,白天,黑天!", // "我只愛你一天,每一天!", // "[玫瑰]愛你麼麼噠!", "[呲牙][壞笑]", "[奸笑][愛心]" }; for (String motto : mottoes) { sendOneMsg(motto); } Thread.sleep(100); sendOneMsg("[得意]就問你,膩不膩害!"); } private static void sendOneMsg(String msg) { Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard(); Transferable tText; Robot robot = null; try { robot = new Robot(); } catch (AWTException e) { e.printStackTrace(); } //延遲十秒,主要是為了預留出開啟視窗的時間,括號內的單位為毫秒 assert robot != null; robot.delay(500); tText = new StringSelection(msg); clip.setContents(tText, null); robot.keyPress(KeyEvent.VK_CONTROL); robot.keyPress(KeyEvent.VK_V); robot.keyRelease(KeyEvent.VK_CONTROL); robot.delay(500); robot.keyPress(KeyEvent.VK_ENTER); robot.delay(500); robot.keyRelease(KeyEvent.VK_CONTROL); } }