找回密码
 加入
搜索
查看: 4396|回复: 11

[AU3基础] 新手制作(自动疲劳提醒)软件请教高手(已解决)

 火.. [复制链接]
发表于 2010-11-14 19:03:47 | 显示全部楼层 |阅读模式
本帖最后由 guang19831217 于 2010-11-15 12:15 编辑

我是新手,电脑不关机的,请教高手这个要修改怎么才能9 10 11 12小时每次到时间运行一次。现在到时

间如9点的提醒有很多遍。造成重复提醒。
; 请置于脚本顶部 
$g_szVersion = "自动疲劳提醒"
If WinExists($g_szVersion) Then Exit ; 此脚本已经运行了
AutoItWinSetTitle($g_szVersion)
; 下面是脚本的其它代码
FileCreateShortcut(@ScriptFullPath, @StartupCommonDir & "\自动疲劳提醒.lnk")

Opt("TrayIconHide", 1)  

While 1                 

if @HOUR = 9 then       
Opt("TrayIconHide", 0)  
TrayTip("提醒:你已经连续工作1小时了","请适当休息几分钟...",20,1)
TrayTip("提醒:善于劳逸结合,注意保护眼睛","请适量做些运动...",20,1)
Sleep(20000)
Opt("TrayIconHide", 1)  
endif                   

if @HOUR = 10 then       
Opt("TrayIconHide", 0)  
TrayTip("提醒:你已经连续工作2小时了","请适当休息几分钟...",20,1)
TrayTip("提醒:善于劳逸结合,注意保护眼睛","请适量做些运动...",20,1)
Sleep(20000)
Opt("TrayIconHide", 1)  
endif                 

if @HOUR = 11 then       
Opt("TrayIconHide", 0)  
TrayTip("提醒:你已经连续工作3小时了","请适当休息几分钟...",20,1)
TrayTip("提醒:善于劳逸结合,注意保护眼睛","请适量做些运动...",20,1)
Sleep(20000)
Opt("TrayIconHide", 1)  
endif                 

if @HOUR = 12 then       
Opt("TrayIconHide", 0)  
TrayTip("提醒:你已经连续工作4小时了","请适当休息几分钟...",20,1)
TrayTip("提醒:善于劳逸结合,注意保护眼睛","请适量做些运动...",20,1)
Sleep(20000)
Opt("TrayIconHide", 1)  
endif                 

WEnd                    ; 循环结束

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-11-14 22:00:06 | 显示全部楼层
@HOUR 是 当前时钟的时值(24时制),值的范围是 00 到 23

只要时间是9点以后,他会每隔20秒运行一次!
发表于 2010-11-14 22:12:11 | 显示全部楼层
时间的判断要精确的秒。
发表于 2010-11-14 22:14:11 | 显示全部楼层
只判断了小时,而没有对分、秒作判断。即9点时每20秒提醒一次。
以下代码未作测试。

local $hour=9
while $hour<13
if @HOUR = $hour and @min<1 then
   if msgbox(4,"提醒","知道了!")=6 then $hour+=1
endif
sleep(100)
wend

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

发表于 2010-11-14 22:17:34 | 显示全部楼层
楼上的代码。。。。帅
 楼主| 发表于 2010-11-15 07:19:48 | 显示全部楼层
是不是要判断到小时,分、秒,就不会每20秒提醒一次,想问下有没有9点运行后退出,但不退出程序的判断,我下面还想增加的时间很乱,没规律的。高手真多,3mile 大大真厉害,谢谢各位大大。
发表于 2010-11-15 07:49:08 | 显示全部楼层
回复 6# guang19831217


    你把你的第一个问题研究明白了,后面的问题就就懂了,道理都是一样的
发表于 2010-11-15 10:35:20 | 显示全部楼层
其实也可以使用系统的计划任务·不占用进程,不过一个计划任务不能设置1天内多次运行。
 楼主| 发表于 2010-11-15 12:09:52 | 显示全部楼层
谢谢大大们的指点。我会努力学习的。
发表于 2010-11-15 13:02:51 | 显示全部楼层
本帖最后由 yinui 于 2010-11-15 13:05 编辑

一个蠢办法:
一个小时只提示一次
; 请置于脚本顶部 
$g_szVersion = "自动疲劳提醒"
If WinExists($g_szVersion) Then Exit ; 此脚本已经运行了
AutoItWinSetTitle($g_szVersion)
; 下面是脚本的其它代码
FileCreateShortcut(@ScriptFullPath, @StartupCommonDir & "\自动疲劳提醒.lnk")

Opt("TrayIconHide", 1)  

While 1                 

if @HOUR = 9 and @HOUR9 <> 1 then       
Opt("TrayIconHide", 0)  
TrayTip("提醒:你已经连续工作1小时了","请适当休息几分钟...",20,1)
TrayTip("提醒:善于劳逸结合,注意保护眼睛","请适量做些运动...",20,1)
@HOUR9 = 1 
Sleep(20000)
Opt("TrayIconHide", 1)  
endif                   

if @HOUR = 10  and @HOUR10 <> 1 then       
Opt("TrayIconHide", 0)  
TrayTip("提醒:你已经连续工作2小时了","请适当休息几分钟...",20,1)
TrayTip("提醒:善于劳逸结合,注意保护眼睛","请适量做些运动...",20,1)
@HOUR10 = 1
Sleep(20000)
Opt("TrayIconHide", 1)  
endif                 

if @HOUR = 11  and @HOUR11 <> 1 then       
Opt("TrayIconHide", 0)  
TrayTip("提醒:你已经连续工作3小时了","请适当休息几分钟...",20,1)
TrayTip("提醒:善于劳逸结合,注意保护眼睛","请适量做些运动...",20,1)
@HOUR11 = 1 
Sleep(20000)
Opt("TrayIconHide", 1)  
endif                 

if @HOUR = 12  and @HOUR12 <> 1 then       
Opt("TrayIconHide", 0)  
TrayTip("提醒:你已经连续工作4小时了","请适当休息几分钟...",20,1)
TrayTip("提醒:善于劳逸结合,注意保护眼睛","请适量做些运动...",20,1)
@HOUR12 = 1
Sleep(20000)
Opt("TrayIconHide", 1)  
endif
                 
if @HOUR > 12  Or  @HOUR < 9 then
@HOUR8 = 0
@HOUR9 = 0
@HOUR11 = 0
@HOUR12 = 0
endif

sleep(1000)
WEnd                    ; 循环结束
 楼主| 发表于 2010-11-16 12:18:29 | 显示全部楼层
高手真多,学习了,谢谢。我正在学习精确到秒,那样打基础应该能好些。
发表于 2011-6-25 10:22:40 | 显示全部楼层
正需要,好好看看
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-20 07:19 , Processed in 0.097717 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表