日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java制作qq机器人(脚本实现和调用QQ官方api实现)

發布時間:2024/8/1 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java制作qq机器人(脚本实现和调用QQ官方api实现) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

    • 項目背景
    • 成果展示
    • 代碼實現
        • 一.腳本實現
        • 二.官方API實現
    • 云服務器出現會出現的特殊情況


項目背景

新生涌入校園,需要招新用的網站和彩蛋。
為了解決彩蛋被挖去后實時通知問題,用腳本和官方api兩種方法制作了一個偽QQ機器人。


成果展示

當有人破解彩蛋時,后端返回破解時間、破解人的IP地址和提交的信息,機器人則發送彩蛋被破解的消息到QQ群中。


代碼實現

一.腳本實現

將QQ聊天窗口打開并放置在一個固定位置,腳本通過模擬鍵鼠操作點擊聊天窗口粘貼發送文本來完成需求。

import java.awt.Desktop; import java.awt.Robot; import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.StringSelection; import java.awt.event.InputEvent; import java.awt.event.KeyEvent;public class autoSend {public static void send(String arg) {try {//將光標移動到QQ聊天窗口并點擊Robot robot = new Robot(); //創建一個機器人robot.delay(2000); //暫停一下robot.mouseMove(150, 600); //將光標移動到相應位置robot.delay(1000); //再停一下robot.mousePress(InputEvent.BUTTON1_DOWN_MASK); //按下鼠標左鍵(InputEvent.BUTTON1_DOWN_MASK)robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); //放松左鍵//將字符串粘貼并發送Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); //獲取系統的剪切板String str = arg; //設置字符串(這里用于傳入相應數據)StringSelection selection = new StringSelection(str); //構建String的數據類型clipboard.setContents(selection, null); //添加文本到系統剪切板//CTRL + V 復制到搜索框robot.keyPress(KeyEvent.VK_CONTROL);robot.keyPress(KeyEvent.VK_V);robot.keyRelease(KeyEvent.VK_CONTROL);robot.keyRelease(KeyEvent.VK_V);robot.delay(100);//按下回車robot.keyPress(KeyEvent.VK_ENTER);robot.keyRelease(KeyEvent.VK_ENTER);} catch (Exception e) {e.printStackTrace();}} }

注意點:robot.mouseMove(150, 600); //將光標移動到相應位置
這句話中的坐標請按照自己電腦QQ聊天窗口位置自行更換。


二.官方API實現

http://wpa.qq.com/msgrd?v=3&uin=" + QQ + "&site=qq&menu=yes
此為QQ臨時聊天窗口的打開方式(需與該QQ是好友,不然會提示加好友)
了解之后用CMD打開瀏覽器,再用瀏覽器訪問該URL,再利用剪切板粘貼文本發送到QQ群中即可完成需求。但已開啟的瀏覽器不會自動關閉,我是選擇了殺死瀏覽器進程的方式達到關閉瀏覽器效果。
代碼如下

import java.awt.AWTException; import java.awt.Robot; import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.StringSelection; import java.awt.datatransfer.Transferable; import java.awt.event.KeyEvent; import java.io.IOException;public class QQBoom {public static void send(String arg) throws AWTException {String sentence = arg; //傳入要發送語句Robot robot = new Robot(); // 創建Robot對象String QQ = "???????"; //這里設置你要發送的QQ號,需要已經添加好友String url = "http://wpa.qq.com/msgrd?v=3&uin=" + QQ + "&site=qq&menu=yes"; //設置調用聊天框urlString cmd = "explorer \"" + url + "\""; //通過cmd命令使用默認瀏覽器訪問urltry {Process proc = Runtime.getRuntime().exec(cmd); //調用cmdproc.waitFor();} catch (Exception e) {e.printStackTrace();}robot.delay(5000); //停頓,為了預留出打開窗口的時間,看電腦性能Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard(); //獲取系統的剪切板Transferable tText = new StringSelection(sentence); //構建String的數據類型clip.setContents(tText, null); //添加文本到系統剪切板//粘貼功能robot.keyPress(KeyEvent.VK_CONTROL);robot.keyPress(KeyEvent.VK_V);robot.keyRelease(KeyEvent.VK_CONTROL);robot.delay(100);robot.keyPress(KeyEvent.VK_ENTER);// 回車發送try {Runtime.getRuntime().exec("taskkill /F /IM 運行此文件.exe"); //殺死瀏覽器的進程,我這里的瀏覽器叫“運行此文件”} catch (IOException e) {e.printStackTrace();}} }

注意點:Runtime.getRuntime().exec("taskkill /F /IM 運行此文件.exe"); //殺死瀏覽器的進程,我這里的瀏覽器叫“運行此文件”
注意填自己瀏覽器的名字,記得做好文件的保存操作,殺錯進程基本逃不掉強制重啟第一次測試時可刪除整個try,catch防止出錯。

若是要在QQ群中發送消息,則需將String url = "http://wpa.qq.com/msgrd?v=3&uin=" + QQ + "&site=qq&menu=yes";改成QQ群的URL。

QQ群API獲取
獲取方法:登錄后選好群即可獲得相應接口。


云服務器出現會出現的特殊情況

斷開與云服務器的遠程鏈接后,云服務會進入屏保模式
最小化會讓遠程桌面的會話切換到無圖形界面的模式
這兩種情況皆會使云服務器的鍵盤鼠標(UI自動化)失效,導致腳本無法正常使用。

解決辦法
創建一個bat,放入以下代碼

@%windir%\System32\tscon.exe 0 /dest:console @%windir%\System32\tscon.exe 1 /dest:console @%windir%\System32\tscon.exe 2 /dest:console @%windir%\System32\tscon.exe 3 /dest:console @%windir%\System32\tscon.exe 4 /dest:console @%windir%\System32\tscon.exe 5 /dest:console

雙擊運行即可退出云服務器

實現原理:用命令關閉遠程桌面,同時保留連接,使云服務器一直處于已連接的狀態。

參考文章:如何關閉遠程桌面后仍處于可交互狀態

總結

以上是生活随笔為你收集整理的java制作qq机器人(脚本实现和调用QQ官方api实现)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。