jQueryrocket

疫情期间,应公司要求需要每天发送体温,但是老忘(有时候在追剧或者打游戏)。于是,这个demo诞生了。

package QQWchat;
 
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.datatransfer.Transferable;
import java.awt.event.KeyEvent;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
 //不过需要自己打开微信窗口
public class QQWchattimer {
    
    private static long getRandom(int min, int max) {
        return Math.round(Math.random() * (max - min) + min);
    }
    
    public static void main(String[]args) {
        
      Calendar calendar = Calendar.getInstance();
        /**
         * 指定触发的时间      现在指定时间为   2020年3月10号  14点  43 分 1 秒时触发
         */
        calendar.set(Calendar.MONTH, 3);//设置日期 这里10表示11月份    11就表示12月份,索引指示月份4=May
        calendar.set(Calendar.DAY_OF_MONTH,13);//设置日期为27号
        calendar.set(Calendar.HOUR_OF_DAY, 16); //设置15点的时候触发
        calendar.set(Calendar.MINUTE, 30); //设置43分钟的时候触发
        calendar.set(Calendar.SECOND, 1); //设置第一秒的时候触发
        
        Date time = calendar.getTime();
        
        System.out.println("计划时间为:"+time+",还需手动打开窗口。设置完成,去玩游戏吧");
        //Timer timer = new Timer();
        //timer.schedule(new RemindTask(), time); 
       
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
                public void run(){
                     SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
                     System.out.println(df.format(new Date()));// new Date()为获取当前系统时间
                    //  String sentence = "everybody早上好,我是你们帅气又迷人的Kaspar哥哥,今天阳光明媚,今天多云转晴,当前时间为"+df.format(new Date())+",今晚早点睡觉,晚安、晚安";// 定义要发送的话
                    //way1
  /*                  double [] arr = {36.1,36.8,36.9}; //自己填数不想写了
                    //产生0-(arr.length-1)的整数值,也是数组的索引
                    int index=(int)(Math.random()*arr.length);
                    double rand = arr[index];
                    String sentence1=Double.toString(rand)+" ,";
                    System.out.println(sentence1);  */
                    //way2
                 double b=getRandom(361, 369);
                 String sentence=Double.toString(b/10)+" ,";
                    System.out.println(sentence);
                    
                     Robot robot = null;
                    try {
                        robot = new Robot();
                    } catch (AWTException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }// 创建Robot对象
                    robot.delay(3000);// 延迟三秒,主要是为了预留出打开窗口的时间,括号内的单位为毫秒
                    Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
                    String[] authors = sentence.split("[,]");// 字符串根据,分割
                    for (int j = 0; j < 1; j++) {//循环次数
                        for (int i = 0; i < authors.length; i++) {
                            String sentencet = authors[i];
                            Transferable tText = new StringSelection(sentencet);
                            clip.setContents(tText, null);
                            // for (int j = 1; j <= 1; j++) {
                            // 以下两行按下了ctrl+v,完成粘贴功能
                            robot.keyPress(KeyEvent.VK_CONTROL);
                            robot.keyPress(KeyEvent.VK_V);
                            //这些键可以瞎鸡儿调
                            robot.keyRelease(KeyEvent.VK_CONTROL);// 释放ctrl按键,像ctrl,退格键,删除键这样的功能性按键,在按下后一定要释放,不然会出问题。crtl如果按住没有释放,在按其他字母按键是,敲出来的回事ctrl的快捷键。
                            robot.delay(1000);// 延迟一秒再发送,不然会一次性全发布出去,因为电脑的处理速度很快,每次粘贴发送的速度几乎是一瞬间,所以给人的感觉就是一次性发送了全部。这个时间可以自己改,想几秒发送一条都可以
                            robot.keyPress(KeyEvent.VK_ENTER);// 回车 
                            // }
                        }
                    }
        
             }
        }, time);
                //  },  10000, 86400000);//10000表示延迟十秒执行,86400000表示24*60*60秒后也就是每天循环执行一次
    }
}

设置好时间,执行上面这个,打开需要的微信窗口。你就可以该干嘛干嘛去了。

原文地址:https://www.cnblogs.com/kaspar/p/12695664.html