因为上下班的时候,老是忘记打卡(其实这不是重点,因为可以补卡嘛),重点是下班走的时候总是忘记关空调(谁最后走忘记关空调,罚100。。。)
我一开始的做法是,在主机上贴个便签,写上关空调三个大字,坐在电脑旁,只要你眼睛稍微一瞥,就是看到。可是依旧是该忘还得忘,那么明显一个便签贴在那,走的时候死活看不到,我有什么办法!

然后我就想做个弹窗提醒,一到下班的点,就弹窗提醒,然后就关空调,下班就关,总不会忘了吧。刚好那两天因为项目需要,我写了个vbs脚本,用vbs启动jar和exe程序这些。就想用vbs做个弹窗。要求就是:在指定时间弹窗。

我是用循环来判断时间是否到了指定时间,然后发现这样太耗cpu了,占了20%左右的cpu,因为它是在一直不停的执行。这样肯定不行,就加了个休眠的语句,多久执行一次,但是这样又不准了,所以感觉又实现不了(这vbs我也不太懂)

最后决定用java。

先看效果:

全部代码都在这里了:

import javax.swing.*;
import javax.swing.plaf.FontUIResource;
import java.awt.*;
import java.io.*;
import java.util.*;
import java.util.List;
import java.util.Timer;/*** @author fuHua* @date 2021年06月09日*/
public class Remind{public static void main(String[] args){try {List<Map<String, String>> list = readTxt();for (int i = 0; i < list.size(); i++) {Map<String, String> map = list.get(i);String time = map.get("time");String msg = map.get("msg");String[] split = time.split(":");//获取时、分、秒int hour = Integer.parseInt(split[0]);int minute = Integer.parseInt(split[1]);int second = Integer.parseInt(split[2]);cacheTimer(hour,minute,second,msg);}}catch (Exception e){e.printStackTrace();}}private static void cacheTimer(int hour,int minute,int second,String msg){try{Calendar calendar = Calendar.getInstance();calendar.set(Calendar.HOUR_OF_DAY, hour);// 时calendar.set(Calendar.MINUTE, minute);// 分calendar.set(Calendar.SECOND, second);// 秒Timer timer = new Timer();//schedule(TimerTask task, Date time):安排在指定的时间执行指定的任务。timer.schedule(new TimerTask(){public void run(){//创建一个窗体,设置窗体置顶JFrame jf = new JFrame();jf.setAlwaysOnTop(true);//设置提醒信息的字体样式UIManager.put("OptionPane.messageFont", new FontUIResource(new Font("宋体", 1, 18)));//一个警告弹窗,因为要将弹窗置顶,所以创建一个JFrame 添加到这里,2 代表的是这个弹窗是警告弹窗JOptionPane.showMessageDialog(jf, msg, "提醒", 2);}}, calendar.getTime());} catch (Exception e) {e.printStackTrace();}}/*** 读取文本内容:Remind.txt 里面就是设置要提示的时间和提醒信息*/private static List< Map<String,String>> readTxt() throws IOException {// Remind.txt 要是可以更改的,如果放在项目里,打包了之后就不能更改了,就无法设置了String path = System.getProperty("user.dir");//jar包或exe程序所在目录名InputStreamReader fReader = new InputStreamReader(new FileInputStream(path+"/Remind.txt"),"UTF-8");BufferedReader reader = new BufferedReader(fReader);String lineTxt=null;List< Map<String,String>> list = new ArrayList<>();while((lineTxt=reader.readLine())!=null){//以“||”进行分割String[] split = lineTxt.split("\\|\\|");Map<String,String> map = new HashMap<>();map.put("time",split[0]);//提醒时间map.put("msg",split[1]);//提醒信息list.add(map);}return list;}
}

Remind.txt 内容


时间和提醒信息用 “||” 分割,一行设置一个提醒

然后打包成jar,再用exe4j将jar打包成exe程序

结果如图:


先在Remind.txt 设置好哪个时间点要提醒什么内容,保存后,启动 Remind.exe程序,它会一直在后台运行,并且不占cpu和内存

到了你设置的时间点,就会弹窗提醒你该干嘛了。可以将软件设置成开机启动。不过如果你要是更改了 Remind.txt 的内容,需要重新启动该软件。

最后

我把这个程序以及 exe4j 放到了这里,mm:hx2q,有需要的自取。
(如果你觉得这篇文章有用的话,不妨给我点个赞吧~)

一个定时任务提醒工具相关推荐

  1. 利用VBScript写一个定时任务弹窗-提醒休息或喝水

    作为一个程序员,在学习或工作的过程中要长时间地面对电脑,经常会出现忘记休息或喝水的时候,有时候一坐就是好几个小时. 这对于身体健康是非常不利的,我以前也不是很在意,一般就是口渴了才喝水.直到最近这几天 ...

  2. WPF 写一个提醒工具软件(完整项目)

    昨天整理硬盘时,偶然发现一个很久之前写的小工具,一个提醒工具. 包含定时提醒,间隔提醒功能. 看看效果: 界面看起来也还凑合,还使用了HandyControl,有桌面托盘功能 界面是下面这样的 提醒窗 ...

  3. python 时间提醒_Linux下基于python的定时提醒工具

    Kreminder 定时提醒工具,间隔一段时间之后提醒长时间坐在电脑面前的你休息一下. 开发初衷 对于需要长时间坐在电脑前工作的人来说,适当起来活动活动总是好的.如果长时间坐在电脑前不动,对于个人的健 ...

  4. 电脑时钟倒计时_倒计时久坐休息提醒工具

    现在上班大家都需要坐在电脑前办公,一坐就是一整天.回到家,依然是坐着吃饭.坐着休息,导致了现代都市人颈椎病高发.久坐不仅对颈椎不好,对腰椎.脊柱等不利. 自己一直没有找到合适的倒计时久坐休息提醒工具, ...

  5. python制作一个桌面小工具

    python实现一个桌面小工具,制作一个桌面的便签提醒工具 参考代码:https://github.com/cosven/memo 参考链接:https://www.jb51.net/article/ ...

  6. Win7系统便签怎样设置一个闹钟提醒

    Win7系统便签怎么设置一个闹钟提醒呢?在便签上设置提醒事项,还可以确定任务完成时间,让每一项任务都在规定时间内完成,杜绝拖延快速完成工作.想要在便签上设置提醒,首先要有一款会提醒的便签,还要了解在该 ...

  7. 怎么设置桌面提醒任务,好用的桌面便签提醒工具

    上班族每天的工作任务很多,全凭脑子记忆恐怕是很费劲的.如果有一个桌面提醒任务软件,可以记录下当天的工作任务,并设置指定时间,提醒自己在特定时间做事.有人喜欢用便签来设置任务提醒,那么好用的桌面便签有哪 ...

  8. python股票全套系统_熬了一晚上,小白用Python写了一个股票提醒系统

    码农小马七夕节去相亲了,见了一个不错的姑娘,长的很是甜美!聊着聊着很投缘!通过介绍人了解到,对方也很满意--想着自己单身多年的生活就要结束啦,心里满是欢喜,美美哒!可是突然想起年初还有几万块在股市里面 ...

  9. LLVM每日谈之四十一 组装一个完整的工具链

    写在前面的话:这是一篇LLVM的官方文档,英文文档地址: Assembling a Complete Toolchain 之前读文档的时候,陆陆续续的翻译过一些,周末花了点时间把这个文章整理了出来.因 ...

最新文章

  1. Spring--IoC(1)
  2. java程序解析perl文件_如何从shell脚本执行perl文件
  3. 【Fanvas技术解密】HTML5 canvas实现脏区重绘
  4. ISO8583报文协议详解
  5. NLP将迎来黄金十年,7个案例带你入门(附Python代码)
  6. elementUI响应式布局@media:基于断点的隐藏类
  7. linux文件句柄满了 现象_Linux 离奇磁盘爆满,如何解决? | 原力计划
  8. R40使用GPIO中断实现按键功能【原创】
  9. word转换php方法,PHP实现Word转换PDF的方法
  10. hibernate 继承映射(二)
  11. HDU1253 胜利大逃亡【BFS】
  12. innerhtml有值但是页面上无显示_西门子PLCS7-1200用户自定义Web页面制作
  13. linux 系统下 tar 的压缩与解压缩命令
  14. 小程序源码:微群人脉微信小程序源码下载全新社群系统优化版-多玩法安装简单
  15. 深度学习中的感受野计算
  16. 互联网让我的人生逆袭
  17. echarts 多个 geo 实现缩放拖拽同步
  18. 【TIC6657 DSP学习笔记】02 RTSC平台配置组件创建
  19. PyTorch(二次元头像--GAN实战)
  20. 关于n%k=n-(n/k)*K

热门文章

  1. Android10 GSI/VTS/STS测试注意事项
  2. Adobe Photoshop CC制作个人logo
  3. java 按钮 事件_Java给按钮添加事件
  4. java poi-ooxml 3.17 excel通用导入导出
  5. 机器学习数据分析软件:Octave
  6. Acwing第 63 场周赛【未完结】
  7. mysql UNION ALL查询分页
  8. 众美集团携手行业伙伴 深化物业服务创新
  9. 【迅雷极速版】——无可替代的下载工具
  10. Android通过.nomedia文件禁止多媒体库扫描指定文件夹下的多媒体文件