为革命,保护视力!

/ 0评 / 0

0x01 前言

最近发现自己视力下降严重,当年双眼5.0视力的传奇不复存在了。也有朋友给我推荐德国双心的叶黄素胶囊,试了一段时间发现效果不是特别好,想了想可能还是因为在电脑面前一坐就是好几个小时,视力怎么可能好得起来呢?还是从根源解决问题更好,况且久坐本身就不仅仅只对眼睛损伤较大,于是制作一个循环小闹钟,隔一段时间就提醒自己该起来走走,看看窗外的想法就开始萌芽了。

0x02 准备

依然祭出早该躺在博物馆的VB。

原理其实特别简单,准备三个窗体,其中frmMain用于设置的配置以及一些全局变量的声明定义方便后端调用,frmControl不会显示在屏幕上,主要进行倒计时时长变量的读取,然后使用Timer控件每隔1s就判断程序运行时间和定义的倒计时时长时候相等,判断到相等时就Unload自身并调出frmRest窗体,frmRest的长宽属性设置为999999(很多个9),目的是保证窗体能覆盖整个屏幕,如果多屏(比如我)的话还要保证两个屏幕都被覆盖掉,再通过调用Windows API实现了置顶的效果来覆盖掉Windows系统的任务栏(本来还想实现窗体透明的,但是一想到透明后只能看不能动自己刚才没完成的工作就挺要强迫症命的,索性就没有这样设计)。

0x03 完成

启动时可以设置定时时间和其他一些配置。

20min到1hour时长不等,默认是45min的。

启动后会提示将在什么时候提醒我,这段时间我可以完成我的工作。

如果设置了“启动后隐藏到系统托盘”后,左下角系统托盘就会出现一个羊驼logo,显示运行中(系统托盘这个也是调用的Windows API)

如果勾选了“运行一次后就停止工作”那么,倒计时完,弹出休息窗体,就相当于完成了一次工作循环,接下来弹窗告知用户并自动结束程序:

20分钟后会全屏一白(全屏一黑可就太吓人了),提醒我该休息休息了,五分钟后Unload frmRest自身(如果没有设置只工作一次的话),我就可以继续工作了,再调用frmControl进行倒计时,完成一次工作循环。程序本身不会影响用户的任何操作,五分钟休息后,桌面恢复原样,用户可以继续完成没有完成的任务。另外,整个程序其实就是两个窗体互相调用。(2333

(这是在虚拟机中运行的效果)

(这是在宿主机(双屏)上运行的效果)

0x04 总结

身体是自己的,工具只是个辅助作用,并不能完全依靠它约束你(比如其实双击休息窗体就可以退出程序)要想身体好,还是要多加锻炼,养成好习惯。(直男发言

发表评论

邮箱地址不会被公开。 必填项已用*标注