效果
網上吵架吵不過別人怎么辦?女朋友讓你從1數到10000怎么辦?想惡搞朋友怎么辦?QQ轟炸機你值得擁有!(注:為了更好的學習編程,敲的練手項目,僅作學習使用)
自定義發送內容,自定義發送條數,“愛”他,就往死里炸他!
源碼
其實思路很簡單,利用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不放。
同理,我們也可以去操作鼠標,碰到一些晚上不睡覺一直打游戲的舍友,那就合理的“廢了”他的鍵盤和鼠標。關於惡搞的小東西,我另寫一篇講