1. 程式人生 > 實用技巧 >java中給多個微信好友自動發信息

java中給多個微信好友自動發信息

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);
       
    }
    
    
}