Java实现⾃动给好友组发送消息Java实现⾃动给好友组发送消息
1. 引⼊依赖
<dependencies>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>5.5.0</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna-platform</artifactId>
<version>5.5.0</version>
</dependency>
</dependencies>
2. 代码
package com.xf;
import com.sun.jna.platform.win32.User32;
import com.sun.jna.platform.win32.WinDef;
怎么把防火墙关了import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyEvent;
import urrent.TimeUnit;
/
**
* @author xf
* @date
*/
public class RobotUtil {
private static Robot robot;
private static Clipboard clip;
private static Toolkit kit;
public static void main(String[] args)throws AWTException, InterruptedException {
// 窗⼝置顶成功
if(topWeChat()){
/
/ 初始化
init();
// 指定需要发送消息的联系⼈/组
queryItemForSendMessage("盖于⾕⼭上");// 昵称/名
// 发送字符串消息
for(int i =0; i <300; i++){// 循环发
// 送
TimeUnit.SECONDS.sleep(5);
sendStrMessage("");
}
// 发送图⽚消息
/
/sendImgMessage("exceltest.jpg"); // 表情包的路径
}
}
/**
* 置顶窗⼝
*
* @return
* @return
*/
public static boolean topWeChat(){
boolean flag =true;
WinDef.HWND hwnd = User32.INSTANCE.FindWindow(null,"");陈式太极拳56式
if(hwnd == null){
flag =false;
System.out.println("not running");
}else{
User32.INSTANCE.ShowWindow(hwnd,9);
User32.INSTANCE.SetForegroundWindow(hwnd);// bring to front
}
return flag;
}
/**
* 初始化全局变量
*
*/
private static void init(){
try{
robot =new Robot();
}catch(AWTException e){
robot = null;
e.printStackTrace();
}
kit = DefaultToolkit();
clip = SystemClipboard();
}
/**
* 查需要发送消息的⼈员/组
*
* @param userName
*/
public static void queryItemForSendMessage(String itemName){
if(robot == null){
return;
}
robot.delay(2000);// 给窗⼝置顶预留时间
// 模拟在上进⾏Ctrl+F进⾏查询操作
robot.keyPress(KeyEvent.VK_CONTROL);
u盘显示0字节robot.keyPress(KeyEvent.VK_F);
robot.keyRelease(KeyEvent.VK_CONTROL);// 是否Ctrl键
// 将字符串放到剪切板内,相当于做了⼀次复制操作
Transferable tText =new StringSelection(itemName);
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.keyPress(KeyEvent.VK_ENTER);// 按下enter键进⾏查询
robot.delay(2000);// 预留查询时间
robot.keyPress(KeyEvent.VK_ENTER);// 再次按下enter键进⾏选中
robot.delay(1000);
}
/**
* 发送字符串消息
*
* @param message
*/
public static void sendStrMessage(String message){
if(robot == null){
return;
}
}
// 将字符串放到剪切板内,相当于做了⼀次复制操作
Transferable tText =new StringSelection(message);
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.keyPress(KeyEvent.VK_ENTER);// 按下enter键进⾏消息发送
robot.delay(1000);
}
安全大检查总结/**
* 发送字符串消息
*
* @param message
*/
public static void sendImgMessage(String imgPath){
if(robot == null){
return;
}
// 将字符串放到剪切板内,相当于做了⼀次复制操作
Transferable tImg =new Image(imgPath));
clip.setContents(tImg, null);
// 以下两⾏按下了ctrl+v,完成粘贴功能
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);// 释放ctrl按键,像ctrl,退格键,删除键这样的功能性
按键,在按下后⼀定要释放,不然会出问题。crtl如果按住没有释放,在按其他字母按键是,敲出来的回事ctrl的快捷键。
robot.keyPress(KeyEvent.VK_ENTER);// 按下enter键进⾏消息发送
robot.delay(1000);
}
}
/**
* ⾃定义Transferable实现类实现图⽚复制到剪切板
*
* @date 2020/05/14
*/
class ImageSelection implements Transferable {
private Image image;
public ImageSelection(Image image){
鬼水凶灵this.image = image;
}
// Returns supported flavors
public DataFlavor[]getTransferDataFlavors(){
return new DataFlavor[]{DataFlavor.imageFlavor};
}
// Returns true if flavor is supported
public boolean isDataFlavorSupported(DataFlavor flavor){
高一开学周记return DataFlavor.imageFlavor.equals(flavor);
}
// Returns image
public Object getTransferData(DataFlavor flavor)throws UnsupportedFlavorException {
if(!DataFlavor.imageFlavor.equals(flavor)){
throw new UnsupportedFlavorException(flavor);
}
return image;
}
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论