Java 指定微信好友自動(dòng)發(fā)送消息的實(shí)現(xiàn)示例
Backgroud
原理很簡(jiǎn)單:robot類模擬鍵盤輸入,快捷鍵打開微信,搜索好友,把發(fā)送內(nèi)容發(fā)送到粘貼板實(shí)現(xiàn)。
程序源碼
package com.cloudansys.test; 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 { public static void main(String[] args) throws InterruptedException { // 好友昵稱 String friendNickName = "不器"; // String friendNickName = "文件傳輸助手"; searchMyFriendAndSend(friendNickName); } private static void searchMyFriendAndSend(String friendNickName) throws InterruptedException { // 創(chuàng)建Robot對(duì)象 Robot robot = null; 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); // 該延遲不能少,否則無(wú)法搜索 robot.delay(1000); // Ctrl + F 搜索指定好友 robot.keyPress(KeyEvent.VK_CONTROL); robot.keyPress(KeyEvent.VK_F); robot.keyRelease(KeyEvent.VK_CONTROL); // 將好友昵稱發(fā)送到剪切板 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); // 發(fā)送消息 sendMsg(); } private static void sendMsg() throws InterruptedException { String[] mottoes = { "我只愛你四天,春天夏天秋天冬天!", "我只愛你三天,昨天,今天,明天!", "我只愛你兩天,白天,黑天!", "我只愛你一天,每一天!", "[玫瑰]愛你么么噠!", "[呲牙][壞笑]", "[奸笑]" }; for (String motto : mottoes) { sendOneMsg(motto); } Thread.sleep(2000); sendOneMsg("[得意]就問你,膩不膩害!"); } }
效果如下圖所示
到此這篇關(guān)于Java 指定微信好友自動(dòng)發(fā)送消息的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Java 微信好友自動(dòng)發(fā)送 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中JDBC實(shí)現(xiàn)動(dòng)態(tài)查詢的實(shí)例詳解
從多個(gè)查詢條件中隨機(jī)選擇若干個(gè)組合成一個(gè)DQL語(yǔ)句進(jìn)行查詢,這一過程叫做動(dòng)態(tài)查詢。下面通過實(shí)例代碼給大家講解JDBC實(shí)現(xiàn)動(dòng)態(tài)查詢的方法,需要的朋友參考下吧2017-07-07使用Java實(shí)現(xiàn)在PDF插入頁(yè)眉頁(yè)腳
在處理PDF文檔時(shí),有時(shí)需要為文檔中的每一頁(yè)添加頁(yè)眉和頁(yè)腳,這篇文章主要為大家詳細(xì)介紹了如何使用Java為PDF文件添加頁(yè)眉、頁(yè)腳,感興趣的可以了解下2024-03-03SpringBoot項(xiàng)目中同時(shí)操作多個(gè)數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法
在實(shí)際項(xiàng)目開發(fā)中可能存在需要同時(shí)操作兩個(gè)數(shù)據(jù)庫(kù)的場(chǎng)景,本文主要介紹了SpringBoot項(xiàng)目中同時(shí)操作多個(gè)數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03JavaWeb實(shí)戰(zhàn)之開發(fā)網(wǎng)上購(gòu)物系統(tǒng)(超詳細(xì))
這篇文章主要介紹了JavaWeb實(shí)戰(zhàn)之開發(fā)網(wǎng)上購(gòu)物系統(tǒng)(超詳細(xì)),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有很好的幫助,需要的朋友可以參考下2021-04-04一文詳解SpringBoot如何優(yōu)雅地實(shí)現(xiàn)異步調(diào)用
SpringBoot想必大家都用過,但是大家平時(shí)使用發(fā)布的接口大都是同步的,那么你知道如何優(yōu)雅的實(shí)現(xiàn)異步呢?這篇文章就來和大家詳細(xì)聊聊2023-03-03java實(shí)現(xiàn)二維碼掃碼授權(quán)登陸
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)二維碼掃碼授權(quán)登陸,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10基于RocketMQ實(shí)現(xiàn)分布式事務(wù)的方法
了保證系統(tǒng)數(shù)據(jù)的一致性,我們需要確保這些服務(wù)中的操作要么全部成功,要么全部失敗,通過使用RocketMQ實(shí)現(xiàn)分布式事務(wù),我們可以協(xié)調(diào)這些服務(wù)的操作,保證數(shù)據(jù)的一致性,這篇文章主要介紹了基于RocketMQ實(shí)現(xiàn)分布式事務(wù),需要的朋友可以參考下2024-03-03Mybatis-plus多租戶項(xiàng)目實(shí)戰(zhàn)進(jìn)階指南
多租戶是一種軟件架構(gòu)技術(shù),在多用戶的環(huán)境下共有同一套系統(tǒng),并且要注意數(shù)據(jù)之間的隔離性,下面這篇文章主要給大家介紹了關(guān)于Mybatis-plus多租戶項(xiàng)目實(shí)戰(zhàn)進(jìn)階的相關(guān)資料,需要的朋友可以參考下2022-02-02k8s部署springboot實(shí)現(xiàn)前后端分離項(xiàng)目
本文主要介紹了k8s部署springboot實(shí)現(xiàn)前后端分離項(xiàng)目,主要包括配置文件、鏡像構(gòu)建和容器編排等方面,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01springboot集成druid,多數(shù)據(jù)源可視化,p6spy問題
這篇文章主要介紹了springboot集成druid,多數(shù)據(jù)源可視化,p6spy問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01