Java实现消息发送

Java实现对话窗口消息的自动粘贴、发送

局限性:

刚开始想做一个能自动打开和某个QQ好友的对话框,并且自动进行消息轰炸的程序,但是自己摸索了一会,也上网查找了一些资料,发现想要自动打开一个QQ对话框是很困难的事情

  • 很难自动调出某个QQ或微信好友的对话框
  • 进行消息发送前,必须点击聊天框,保证光标在聊天框内闪烁
  • 发送频率不能过高,过高会引起QQ检测从而禁止发送消息;并且过高的频率也很难实现消息的顺序发送
import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.event.KeyEvent;
import java.util.Scanner;

/**
 * @author: kid
 * @creatAt:2021/5/1 8:41
 */
public class MessageSent
{
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        try {
            Robot robot = new Robot();
            Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
            System.out.println("请输入需要重复发送的内容:");
            String msg = scan.nextLine();
            System.out.println("请输入每条内容发送的时间间隔(ms):(>=30ms)");
            int period = scan.nextInt();
            if(period<30)
            {
                System.err.println("不合法的时间间隔!");
                System.exit(-1);
            }
            robot.delay(3000);      //推迟3秒,便于打开对话窗口,实现消息的复制粘贴
            //因剪贴板中的内容不一定为String,故需要实现Transferable接口,保证该内容能够转化为String,所以使用了StringSelection
            for(int i=0;i<1000;i++){
                StringSelection stringSelection = new StringSelection(msg+(i+1));     //将msg字符串作为StringSelect的内容,StringSelect实现了Transferable接口
                clip.setContents(stringSelection,null);             //函数原型:setContents(Transferable contents, ClipboardOwner owner)
                robot.keyPress(KeyEvent.VK_CONTROL);        //模拟按下control键
                robot.keyPress(KeyEvent.VK_V);              //模拟按下v键
                robot.keyRelease(KeyEvent.VK_CONTROL);      //模拟松开control键
                robot.keyRelease(KeyEvent.VK_V);            //模拟松开v键
                robot.keyPress(KeyEvent.VK_ENTER);          //模拟按下enter键
                robot.delay(period);
                robot.keyRelease(KeyEvent.VK_ENTER);        //模拟松下enter键
            }
        } catch (AWTException e) {
            e.printStackTrace();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值