赞
踩
原理很简单,使用机器人模拟按键,使用剪贴板把内容copy进去发送;
需要先在pc登录微信客户端,然后用机器人按键,使用ctrl+alt+w快捷键打开微信,使用ctrl+f打开搜索,黏贴好友名称进行搜索,然后黏贴要发送的消息发送即可;
此外还需要注意耗时操作,需要等待操作完成后进行下一步操作,否则后续操作会发生故障;
测试demo:
- /**
- * 2022年11月22日上午10:10:11
- */
- package mytest;
-
- 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.event.KeyEvent;
-
- /**
- * @author xwf12
- *
- */
- public class MainTest {
-
- /**
- * @param args
- */
- public static void main(String[] args) {
- try {
- Robot robot = new Robot();//机器人
- Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();//剪贴板
- //ctrl+alt+w快捷键打开微信
- robot.keyPress(KeyEvent.VK_CONTROL);
- robot.keyPress(KeyEvent.VK_ALT);
- robot.keyPress(KeyEvent.VK_W);
- robot.keyRelease(KeyEvent.VK_CONTROL);//释放ctrl
- robot.keyRelease(KeyEvent.VK_ALT);//释放alt
- robot.delay(200);//延时200ms等待微信打开
- //ctrl+f光标定位到搜索框
- robot.keyPress(KeyEvent.VK_CONTROL);
- robot.keyPress(KeyEvent.VK_F);
- robot.keyRelease(KeyEvent.VK_CONTROL);//释放ctrl
- //剪贴板设置内容
- clipboard.setContents(new StringSelection("文件传输助手"), null);//剪贴板设置要搜索的好友名字
- //ctrl+v将剪贴板内容黏贴到搜索框
- robot.keyPress(KeyEvent.VK_CONTROL);
- robot.keyPress(KeyEvent.VK_V);
- robot.keyRelease(KeyEvent.VK_CONTROL);//释放ctrl
- robot.delay(1000);//延时1s等待搜索结果
- //回车打开搜索结果的聊天框
- robot.keyPress(KeyEvent.VK_ENTER);
- robot.delay(200);
- //剪贴板设置要输入的内容,ctrl+v黏贴,enter发送
- clipboard.setContents(new StringSelection("hello world[呲牙]"), null);
- robot.keyPress(KeyEvent.VK_CONTROL);
- robot.keyPress(KeyEvent.VK_V);
- robot.keyRelease(KeyEvent.VK_CONTROL);//释放ctrl
- robot.keyPress(KeyEvent.VK_ENTER);//发送消息
- robot.delay(100);
- for (int i = 1; i<= 5; i++) {
- clipboard.setContents(new StringSelection("test[坏笑]" + i), null);
- robot.keyPress(KeyEvent.VK_CONTROL);
- robot.keyPress(KeyEvent.VK_V);
- robot.keyRelease(KeyEvent.VK_CONTROL);//释放ctrl
- robot.keyPress(KeyEvent.VK_ENTER);//发送消息
- robot.delay(100);
- }
-
- //关闭聊天窗口
- robot.keyPress(KeyEvent.VK_ALT);
- robot.keyPress(KeyEvent.VK_F4);
- robot.keyRelease(KeyEvent.VK_ALT);
- } catch (AWTException e) {
- e.printStackTrace();
- }
- }
-
- }

程序运行结果:
PS:这个Robot类好像能干许多有意思的事,除了按键还能控制鼠标移动、点击鼠标、获取屏幕某个坐标的颜色、截屏,可以用来进行一些自动化操作;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。