Java使用Robot完成QQ轟炸機

效果

網上吵架吵不過別人怎麼辦?女友讓你從1數到10000怎麼辦?想惡搞朋友怎麼辦?QQ轟炸機你值得擁有!(注:爲了更好的學習編程,敲的練手項目,僅做學習使用)
自定義發送內容,自定義發送條數,「愛」他,就往死裏炸他!
java

源碼

其實思路很簡單,利用Java裏面的Robot類來作模擬鍵盤的操做,基本思路是,咱們先複製好一段話,而後寫個循環,在循環裏模擬按ctrl+v鍵,完成粘貼功能,粘貼完,模擬按下回車(發送)。
Robot類能夠模擬鍵盤和鼠標的操做,通常會用來作一些自動化測試之類的,或者完成一些簡單可是須要頻繁操做的功能。像搶紅包,刷票均可以用Robot來作,思路都差很少。若是你夠閒,甚至能夠寫個類去循環破解WiFi密碼
編程

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;

public class QQBoom {
    public static void main(String[] args) throws AWTException {

        String sentence = "愛我你怕了嗎";//定義要發送的話
        
        //如下三行爲將上述字符串放到剪切板內,至關於作了一次複製操做
        Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
        Transferable tText = new StringSelection(sentence);
        clip.setContents(tText, null);
        

        Robot robot = new Robot();//建立Robot對象
        robot.delay(3000);//延遲三秒,主要是爲了預留出打開窗口的時間,括號內的單位爲毫秒
        for (int i = 1; i <= 10; i++) {//循環十次,固然,若是愛得深,你死循環也沒問題
            
            //如下兩行按下了ctrl+v,完成粘貼功能
            robot.keyPress( KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_V);
            
            robot.keyRelease(KeyEvent.VK_CONTROL);//釋放ctrl按鍵,像ctrl,退格鍵,刪除鍵這樣的功能性按鍵,在按下後必定要釋放,否則會出問題。crtl若是按住沒有釋放,在按其餘字母按鍵是,敲出來的回事ctrl的快捷鍵。
              robot.delay(1000);//延遲一秒再發送,否則會一次性全發佈出去,由於電腦的處理速度很快,每次粘貼發送的速度幾乎是一瞬間,因此給人的感受就是一次性發送了所有。這個時間能夠本身改,想幾秒發送一條均可以
            robot.keyPress( KeyEvent.VK_ENTER);//回車
        }
    }
}

講解

其實也沒啥講的,這麼簡單的東西,若是不是爲了湊字數,我纔不寫呢!
學習

我錯了,其實仍是頗有含金量的,好比,好比……好比這個釋放按鍵。
感興趣的能夠試一試刪掉紅框裏這一行,是否是發現消息發佈出去,若是你在記事本里測試的,你會發現鍵盤無法打字了,若是按f會直接彈出搜索框,由於ctrl是功能性按鍵,必須釋放,否則會一直起做用。
測試

從上面的例子,有沒有一些邪惡的想法,若是代碼寫了個死循環,而後按住back_space鍵不放呢?你試試唄,鍵盤能打出字算我輸。固然你也能夠按住delete不放。
同理,咱們也能夠去操做鼠標,碰到一些晚上不睡覺一直打遊戲的舍友,那就合理的「廢了」他的鍵盤和鼠標。關於惡搞的小東西,我另寫一篇講
spa

相關文章
相關標籤/搜索