Java实现微信QQ简易版轰炸机

    记得以前看见过一个小故事,大致讲的是一个程序员(男-以下简称小Y)和对象吵架了,但是怎么哄也哄不好,而且那个姑娘还蛮不讲理,竟然让小Y从QQ上给她发消息从1发到1万,她才能不生气。当时我还算了一下,按一个数字键再按下回车刚开始的时候数小,差不多要0.5秒,之后数字大了速度跟得上的话得1秒多,从1-10000就按照1W秒,接近3个小时不停歇才能完事。

    但是身为程序员怎么可能被这种小事情给难倒,这就相当与产品经理不断做斗争一个样道高一尺魔高一丈,于是小Y便打开电脑···

想要实现在QQ窗口中自动发送消息,主要分为三个步骤:

a: 获取QQ窗口

b:设置好自定义发送的消息

c:要让程序按下虚拟按键

    有了逻辑接下来就是敲代码的事情了,这里我们用到了Robot类和Clipborad类,Robot它主要控制鼠标移动、键盘按键等输入操作,用于程序测试自动化、自运行演示程序。Clipboard类,实现一种使用剪切/复制/粘贴操作传输数据的机制,继承关系为java.lang.Object。


        直接上效果


源代码

  • public class NumAdd {

    //数字

    public static void main(String[] args) throws Exception {

        Robot robot = new Robot();// 创建Robot对象

        robot.delay(3000);// 延迟三秒,主要是为了预留出打开窗口的时间,括号内的单位为毫秒

        Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();

        for (int j = 0; j < 5; j++) {//循环次数

                Transferable tText = new StringSelection(String.valueOf(j));

                clip.setContents(tText, null);

                // 以下两行按下了ctrl+v,完成粘贴功能

                robot.keyPress(KeyEvent.VK_CONTROL);

                robot.keyPress(KeyEvent.VK_V);

                robot.keyRelease(KeyEvent.VK_CONTROL);// 释放ctrl按键,像ctrl,退格键,删除键这样的功能性按键,在按下后一定要释放,不然会出问题。crtl如果按住没有释放,在按其他字母按键是,敲出来的回事ctrl的快捷键。

                robot.delay(2000);// 延迟一秒再发送,不然会一次性全发布出去,因为电脑的处理速度很快,每次粘贴发送的速度几乎是一瞬间,所以给人的感觉就是一次性发送了全部。这个时间可以自己改,想几秒发送一条都可以

                robot.keyPress(KeyEvent.VK_ENTER);// 回车

                // }

        }

    }

}

     大家也看到上述简单的代码便实现了这个功能,于是我怀揣着好奇的心理在网上搜了一下,发现也有相似的小设计,一起拿出来分享给大家。下面这张图片不同的地方就是在程序里面输入qq号码,必须是自己已经添加的好友,就会自动弹出qq聊天窗口,不需要手动打开qq窗口,听起来是不是很厉害,反正我觉得挺厉害的!直接看图



        附上一张网上找到的源代码

//自动打开qq发消息

public class QQBoom {

    public static void main(String[] args) throws AWTException, IOException {

        String sentence = "从前有座山,山里有座庙,庙里有个老和尚和小和尚,和尚对小和尚说:";// 定义要发送的话

        Robot robot = new Robot();// 创建Robot对象

        String QQ="123465";//这里设置你要发送的QQ号,需要已经添加好友

        String url="tencent://message/?uin="+QQ+"Site=http://vps.shuidazhe.com&Menu=yes&card_type=group";//设置调用聊天框url

        String cmd = "explorer \"" +url+"\"";//通过cmd命令使用默认浏览器访问url

        try {

            Process proc = Runtime.getRuntime().exec(cmd);

            proc.waitFor();

        }

        catch (Exception e)

        {

            e.printStackTrace();

        }

        robot.delay(2000);// 延迟2秒,主要是为了预留出打开窗口的时间,括号内的单位为毫秒

        Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();

        String[] authors = sentence.split("[,]");// 字符串根据,分割

        for (int j = 0; j < 20; j++) {//循环次数

            for (int i = 0; i < authors.length; i++) {

                String sentencet = authors[i];

                Transferable tText = new StringSelection(sentencet);

                clip.setContents(tText, null);

                // 以下两行按下了ctrl+v,完成粘贴功能

                robot.keyPress(KeyEvent.VK_CONTROL);

                robot.keyPress(KeyEvent.VK_V);

                robot.keyRelease(KeyEvent.VK_CONTROL);// 释放ctrl按键,像ctrl,退格键,删除键这样的功能性按键,在按下后一定要释放,不然会出问题。crtl如果按住没有释放,在按其他字母按键是,敲出来的回事ctrl的快捷键。

                robot.delay(500);// 延迟一秒再发送,不然会一次性全发布出去,因为电脑的处理速度很快,每次粘贴发送的速度几乎是一瞬间,所以给人的感觉就是一次性发送了全部。这个时间可以自己改,想几秒发送一条都可以

                robot.keyPress(KeyEvent.VK_ENTER);// 回车

                // }

            }

        }

    }

}


                        想要交流的各位小伙伴关注公众号加我微信进行交流哦!

你可能感兴趣的:(Java实现微信QQ简易版轰炸机)