package Bag;
import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.event.KeyEvent;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class Main {
public static void main(String[] args) throws ParseException {
System.out.println("Start Success !");
Execute execute = new Execute();
execute.everyday("XXX","20:10:30","XXX");
//execute.everyday("Ryan","18:25:30","ZY:晚间打卡");
}
}
class Execute {
private WeChatRobot robot = new WeChatRobot();
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public void everyday(String friendName,String timeStr,String message) throws ParseException {
//获取目标时间
Date date = getDate(timeStr);
Timer timer = new Timer();
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
printLog(friendName,message);
robot.OpenWeChat();
robot.ChooseFriends(friendName);
robot.SendMessage(message);
}
};
timer.schedule(timerTask,date,1000*60*60*24);
}
private void printLog(String friendName, String message) {
System.out.println("-----------------发送消息-----------------");
System.out.println("当前时间: " + sdf.format(new Date()));
System.out.println("发送对象: " + friendName);
System.out.println("发送内容: " + message);
}
private Date getDate(String timeStr) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//获取当前日期 例如 2020-22-22
String currentDate = sdf.format(new Date());
//组拼 目标时间 2020-22-22 22:22:22
String targetTime = currentDate+" "+timeStr;
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//目标时间 时间戳
long targetTimer= sdf.parse(targetTime).getTime();
//当前时间 时间戳
long currentTimer = new Date().getTime();
//判断是否已过目标时间
if(targetTimer < currentTimer ){
//目标时间加一天
targetTimer += 1000*60*60*24;
}
//返回目标日期
return new Date(targetTimer);
}
}
class WeChatRobot {
private Robot bot = null;
private Clipboard clip = null;
public WeChatRobot() {
try {
this.clip = Toolkit.getDefaultToolkit().getSystemClipboard();
this.bot = new Robot();
} catch (AWTException e) {
e.printStackTrace();
}
}
public void OpenWeChat() {
bot.keyPress(KeyEvent.VK_CONTROL);
bot.keyPress(KeyEvent.VK_ALT);
bot.keyPress(KeyEvent.VK_W);
bot.keyRelease(KeyEvent.VK_CONTROL);
bot.keyRelease(KeyEvent.VK_ALT);
bot.delay(1000);
}
public void ChooseFriends(String name) {
Transferable text = new StringSelection(name);
clip.setContents(text, null);
bot.delay(1000);
//打开搜索框
bot.keyPress(KeyEvent.VK_CONTROL);
bot.keyPress(KeyEvent.VK_F);
bot.keyRelease(KeyEvent.VK_CONTROL);
bot.delay(1000);
//将名字复制进去
bot.keyPress(KeyEvent.VK_CONTROL);
bot.keyPress(KeyEvent.VK_V);
bot.keyRelease(KeyEvent.VK_CONTROL);
bot.delay(2000);
//按enter键打开这个人
bot.keyPress(KeyEvent.VK_ENTER);
}
public void SendMessage(String message) {
Transferable text = new StringSelection(message);
clip.setContents(text, null);
bot.delay(1000);
bot.keyPress(KeyEvent.VK_CONTROL);
bot.keyPress(KeyEvent.VK_V);
bot.keyRelease(KeyEvent.VK_CONTROL);
bot.delay(1000);
bot.keyPress(KeyEvent.VK_ENTER);
bot.delay(1000);
bot.keyPress(KeyEvent.VK_CONTROL);
bot.keyPress(KeyEvent.VK_ALT);
bot.keyPress(KeyEvent.VK_W);
bot.keyRelease(KeyEvent.VK_CONTROL);
bot.keyRelease(KeyEvent.VK_ALT);
}
}
微信自动发送消息Java
最新推荐文章于 2024-07-15 02:32:42 发布