JavaDemo——使用机器人发送微信消息

原理很简单,使用机器人模拟按键,使用剪贴板把内容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();
		}
	}

}

程序运行结果:

JavaDemo——使用机器人发送微信消息_第1张图片

 

PS:这个Robot类好像能干许多有意思的事,除了按键还能控制鼠标移动、点击鼠标、获取屏幕某个坐标的颜色、截屏,可以用来进行一些自动化操作;

你可能感兴趣的:(JavaDemos,java,发送微信消息)