zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    忍者必须死3 模拟器按键设置
    C# 工厂模式 个人基本流程
    WPF Boolean类型转化器收集 反转转化器
    Json实体类驼峰名称转化器
    TDengine + EMQ X + Grafana 轻松搭建高效低成本的边缘侧工业互联网平台
    呼声最高的数据更新功能来了,用户需要什么,我们就开源什么
    年轻人不讲武德,TDengine边缘侧数据存储方案挑战SQLite
    保姆级演示一分钟搞定TDengine的下载安装
    双汇大数据方案选型:从棘手的InfluxDB+Redis到毫秒级查询的TDengine
    HiveMQ TDengine extension 使用指南
  • 原文地址:https://www.cnblogs.com/cnsealine/p/4240251.html
Copyright © 2011-2022 走看看