您的位置:首页 > 其它

AutoHotkey 定时器

2015-01-21 22:02 761 查看
---转载 @liuyukuan

为了提高效率,增加解决问题的途径,这几天有空就看下AutoHotKey,弄出了几个有趣的小玩艺。

定时器是其中一个,网上找的源码,比我原来那个强得多,修改了一些小地方之后,传上来给大家用。

; <COMPILER: v1.0.47.6>
;一天 24小时,1440分,86400秒
;一周 168小时,10080分,604800秒
;30天  750小时,43200分,2592000秒
;365天  8760小时,525600分,31536000秒
InputBox, time, 计时器, 请输入计时分钟数,,180,130,,,,,0.2
if ErrorLevel
return
else
a=0
b=0
c=0
d=0
e=0
CustomColor = EEAA99
Gui, +AlwaysOnTop +LastFound +Owner
Gui, Color, %CustomColor%
Gui, Font, s11
Gui, Add, Text, vMyText cWhite,  w300 XXXXX YYYYY
WinSet, TransColor, %CustomColor% 150
Gui, -Caption
SetTimer, UpdateOSD, 1000
Gosub, UpdateOSD
Gui, Show, x1235 y-8 ;屏幕右上角显示计时器
time2 := time*60000
Sleep,%time2%
SoundBeep, 1250, 100
Sleep,50
SoundBeep, 1250, 100
Sleep,50
SoundBeep, 1250, 200
Sleep,150
MsgBox,,时间到!,预订时间到!
exitapp

UpdateOSD:
e++
if e=10
{
e=0
d++
if d=6
{
e=0
d=0
c++
if c=10
{
c=0
d=0
e=0
b++
}
if b=6
{
b=0
c=0
d=0
e=0
a++
}
}
}
GuiControl,, MyText, %b%%c%:%d%%e% / %time% 分  ;更新计时器
return


SetTimer的用处(在处理时间方面很有用).以及时间的计算算,当然还有许多更出色的算法.


#NoTrayIcon

(解释)不显示拖盘.由于这个文件基本没有界面,也不显示拖盘.所以关闭要在进程中关.可以你们取消这命令

;time

(解释)程序中的注释,要以 " ; " 号开头.

a=0

b=0

c=0

d=0

e=0

(解释)定义了5个字母并附值为0

CustomColor = EEAA99

(解释)定义CustomColor的值为EEAA99.EEAA99是颜色.

Gui, +AlwaysOnTop +LastFound +Owner

(解释)AlwaysOnTop总是显示在最高层.LastFound不在标题栏上显示程序名

字.+Owner不显示在任务栏上.

Gui, Color, %CustomColor%

(解释)窗口的颜色为%CustomColor%,%CustomColor%为变量就是上面的EEAA99,但是上一步已经将窗透明,所以这里的颜色

随便什么都可以.

Gui, Font, s10

(解释)创建字体,大小为s10.s为Size的意思,s10就是设置文字大小.

Gui, Add, Text, vMyText cWhite, XXXXX YYYYY

(解释)添加文本内容为XXXXX YYYYY.字体颜色为cWhite.cWhite是白色的意思.文字颜色还有cRed,cBlue

等.vMyText定于的变量.下面引用应该把v去掉为%MyText%.

WinSet, TransColor, %CustomColor% 150

(解释)将颜色%CustomColor%(EEAA99)透明为150.值为0-255

Gui, -Caption

(解释)-Caption不显示程序标题等界面边界.默认为+Caption.

SetTimer, UpdateOSD, 1000

(解释)1000毫秒后重复执行.1000毫秒为1秒.

Gosub, UpdateOSD

(解释)Gosub和Goto命令差不多.只不过这个命令遇到Retuen后返回.

Gui, Show, x470 y0

(解释)显示界面的位置.我这里设置的位置在桌面的中间最上方.

return

(解释)不解释了.

UpdateOSD:

e++

if e=10

{

e=0

d++

if d=6

{

e=0

d=0

c++

if c=10

{

c=0

d=0

e=0

b++

}

if b=6

{

b=0

c=0

d=0

e=0

a++

}

}

}

GuiControl,, MyText, %a%:%b%%c%:%d%%e%

return

(解释)上面一段为时间算法.具体为:由于SetTimer为每一秒更新一次.所以每执行一次.秒为就加1.比如0:00:00 第一次秒位上加1当到

10后就为0,同时十秒位为1.当10秒位为6的时候,十秒位与秒位变0同时分位变为1.当分位变10的时候.分位、十秒位、秒位为0,十分位变1。当

十分位为6的时候,十分位、分位、十秒位、秒位变0,时位为1。变成1小时.1:00:00

(解释)GuiControl,, MyText, %a%:%b%%c%:%d%%e% 把变量abcde的值传递给MyText.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: