AutoHotkey 定时器

---转载 @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.

posted @ 2015-01-21 22:02  cnsealine  阅读(2135)  评论(0编辑  收藏  举报