zoukankan      html  css  js  c++  java
  • 【Java】指定【微信】好友自动发送消息

    package user.controller;
    
    import java.awt.*;
    import java.awt.datatransfer.Clipboard;
    import java.awt.datatransfer.StringSelection;
    import java.awt.datatransfer.Transferable;
    import java.awt.event.KeyEvent;
    
    public class T6 {
        public static void main(String[] args) throws InterruptedException {
       
            // 好友昵称
            String friendNickName = "烟花雨";
           // String friendNickName = "文件传输助手";
    
            searchMyFriendAndSend(friendNickName);
        }
    
        private static void searchMyFriendAndSend(String friendNickName) throws InterruptedException {
            // 创建Robot对象
            Robot robot = null;
            try {
                robot = new Robot();
            } catch (AWTException e) {
                e.printStackTrace();
            }
            //打开微信 Ctrl+Alt+W
            assert robot != null;
            robot.keyPress(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_ALT);
            robot.keyPress(KeyEvent.VK_W);
            //释放Ctrl按键,像Ctrl,退格键,删除键这样的功能性按键,在按下后一定要释放
            robot.keyRelease(KeyEvent.VK_CONTROL);
            robot.keyRelease(KeyEvent.VK_ALT);
            // 该延迟不能少,否则无法搜索
            robot.delay(1000);
            // Ctrl + F 搜索指定好友
            robot.keyPress(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_F);
            robot.keyRelease(KeyEvent.VK_CONTROL);
            // 将好友昵称发送到剪切板
            Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
            Transferable tText = new StringSelection(friendNickName);
            clip.setContents(tText, null);
            // 以下两行按下了ctrl+v,完成粘贴功能
            robot.keyPress(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_V);
            robot.keyRelease(KeyEvent.VK_CONTROL);
            robot.delay(1000);
            robot.keyPress(KeyEvent.VK_ENTER);
            // 发送消息
            sendMsg();
        }
        private static void sendMsg() throws InterruptedException {
            String[] mottoes = {
                    "我只爱你四天,春天夏天秋天冬天!",
                    "我只爱你三天,昨天,今天,明天!",
                    "我只爱你两天,白天,黑天!",
                    "我只爱你一天,每一天!",
                    "[玫瑰]爱你么么哒!",
                    "[呲牙][坏笑]",
                    "[奸笑][爱心]"
            };
            for (String motto : mottoes) {
                sendOneMsg(motto);
            }
            Thread.sleep(2000);
            sendOneMsg("[得意]就问你,腻不腻害!");
        }
    
        private static void sendOneMsg(String msg) {
            Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
            Transferable tText;
            Robot robot = null;
            try {
                robot = new Robot();
            } catch (AWTException e) {
                e.printStackTrace();
            }
            //延迟十秒,主要是为了预留出打开窗口的时间,括号内的单位为毫秒
            assert robot != null;
            robot.delay(500);
            tText = new StringSelection(msg);
            clip.setContents(tText, null);
            robot.keyPress(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_V);
            robot.keyRelease(KeyEvent.VK_CONTROL);
            robot.delay(500);
            robot.keyPress(KeyEvent.VK_ENTER);
            robot.delay(500);
        }
    
    }
    

      

  • 相关阅读:
    Zookeeper概念学习系列之分布式事务
    序列化 反序列化 输入流 输出流
    dfs常见的配置文件中的value与description(重要)
    [转]SQL Server Reporting Services
    [转]webpack4.0.1安装问题和webpack.config.js的配置变化
    [转]Vue.js 入门教程
    [转]Webpack 入门教程
    [转]使用C#调用cmd来执行sql脚本
    [转]winform利用读取xml获取webconfig
    [转]bootstrap栅格系统的属性及使用
  • 原文地址:https://www.cnblogs.com/xianz666/p/13891841.html
Copyright © 2011-2022 走看看