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.

时间: 2024-10-13 19:07:24

AutoHotkey 定时器的相关文章

AutoHotKey 快捷使用

1 ; IMPORTANT INFO ABOUT GETTING STARTED: Lines that start with a 2 ; semicolon, such as this one, are comments. They are not executed. 3 4 ; This script has a special filename and path because it is automatically 5 ; launched when you run the progra

开机时自动启动的AutoHotkey脚本

;;; 开机时自动启动的AutoHotkey脚本;; 此脚本修改时间 2019年06月18日20时48分;; 计时器创建代码段 -----------------------------------------------------------------------------------------; SetTimer可以模拟多线程从而不影响主线程的流畅执行; 请在SciTE4AutoHotkey中选中单词并按快捷键F12跳转到函数定义处; 绿色免安装程序,统一都分类保存在本地磁盘D分区文

Android零基础入门第60节:日历视图CalendarView和定时器Chronometer

原文:Android零基础入门第60节:日历视图CalendarView和定时器Chronometer 上一期学习了AnalogClock.DigitalClock和TextClock时钟组件,本期继续来学习日历视图CalendarView和定时器Chronometer. 一.CalendarView 日历视图(CalendarView)可用于显示和选择日期,用户既可选择一个日期,也可通过触 摸来滚动日历.如果希望监控该组件的日期改变,则可调用CalendarView的 setOnDateCha

发送短信验证码按钮 定时器

static int i = 29; @property(nonatomic,strong) NSTimer *timmer;//定时器 - (void)sendNumber{ NSLog(@"发送验证码"); self.getTelephoneCodeBtn.enabled = NO; [self.getTelephoneCodeBtn setTitle:@"已发送" forState:UIControlStateDisabled]; [self.getTelep

《TCP/IP具体解释》读书笔记(22章)-TCP的坚持定时器

TCP通过让接收方指明希望从发送方接收的数据字节数(即窗体大小)来进行流量控制. 假设窗体大小为0会发生什么情况呢?这将有效阻止发送方传送数据,直到窗体变为非0为止. ACK的传输并不可靠,也就是说,TCP不正确ACK报文段进行确认,TCP仅仅确认那些包括有数据的ACK报文段. 1.坚持定时器 假设一个场景:假设一个确认丢失了,则两方就有可能由于等待对方而使连接终止,接收方等待接收数据(由于它已经向发送方通告了一个非0的窗体),而发送方在等待同意它继续发送数据的窗体更新.为防止这种死锁情况的发生

javascript-函数和定时器

1.函数自执行 JavaScript中不像C#中那样要求所有路径都有返回值,没有返回值就是undefined (function(){alert(1);}()); (function(){alert(1);})(); !function(){alert(1);}(); void function(){alert(2);}(); 2.可变参数 js函数无法像C#方法那样重载 下面的代码等于是对a函数重新定义 function a() { alert("无参函数"); } function

&lt;JavaScript&gt; 八. 定时器

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title></title> 5 <script type="text/javascript"> 6 /* 7 定时器 周期性执行JS代码 8 */ 9 10 // --------------------- 方法 ----------------------- 11 /* 12 1. setInterval(code, millisec

JavaScript定时器原理分析

.header { cursor: pointer } p { margin: 3px 6px } th { background: lightblue; width: 20% } table { text-align: center; margin-top: 20px; margin-left: 10px; margin-bottom: 20px } a { cursor: pointer; text-decoration: none; color: gray } a:hover { text

workman源代码阅读 - 使用信号处理器实现定时器

<?php /** * SIGALRM信号处理器注册成功后,在什么情况下进程会收到该信号呢? * * 在Linux系统下,每个进程都有惟一的一个定时器,该定时器提供了以秒为单位的定时功能.在定时器设置的超时时间到达后,调用alarm的进程将收到SIGALRM信号. */ /** * 启动信号处理器 */ \MySignalClazz::init(); /** * 信号处理器 * @author Administrator * */ class MySignalClazz { /** * Task