[第一关]设置一个置顶于屏幕的倒计时!

今天是戎马生涯的开关之日,欢迎各路大神前来闯关,请以任意方式,实现一个置顶于屏幕的倒计时!请来挑战吧!

参考代码:

^1::
Tick := 600
SetTimer, Timer1, 1000
Return
Timer1:
if Tick--
Tooltip, % Format("{:02d}:{:02d}", Tick/60 , Mod(Tick,60)), 50, 10
else
{
    SetTimer, Timer1, Off
    SoundBeep, 4000, 2000
    Tooltip
}
Return

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA捐赠
共{{data.count}}人
人已捐赠
其他

[GUI]3D进度条实例

2017-2-21 22:59:58

其他应用

[游戏][Dota]Dota2祈求者一键脚本

2017-2-22 19:47:26

21 条回复 A文章作者 M管理员
  1. kkk

    关主请看!!!

    • kkk

      k=20
      gosub, time

      time:
      loop
      {
      if k=0
      {
      tooltip,
      return
      }

      tooltip, %k%, 500, 0
      sleep, 1000
      k–
      gosub, time
      }
      return

    • hexuren

      不错,还带跳动效果!!

    • hexuren

      奖励A币100

    • oeasy

      k:=20
      loop
      {
      if k=0
      return
      tooltip, %k%, 500, 0
      sleep, 1000
      k–
      }
      return

      小弟不才,感觉老哥的有些绕,把自认为多余的砍了,运行了下貌似没有问题

  2. 清墨

    F1::
    time:=60
    loop,% time
    {
    time–
    tooltip,% Floor(time/60)”:”Mod(time,60), 500, 500
    sleep 1000
    if(0==time)
    tooltip
    }
    Return

    • hexuren

      比一楼代码更加规范!不过没有质的飞跃!!加油!!!

  3. 惮殃
    GUI, -sysmenu +AlwaysOnTop -caption +Border
        gui,font, cf6f8da s12, Consolas
        Gui, Add, text, x301 y2 w300 h25 vmytex, :0
        Gui, Add, Progress, x0 y0 w300 h25 cf6f8da  Background293d3f vMyProgress
        GuiControl,, MyProgress, 0
        ;获取倒计时间隔秒数
        inputbox, waitingSec, 输入等待时间`,单位为秒
        ;每秒所占的像素单位长度
        perMSecWide := 100 / waitingSec / 1000
        ;记录开始时间
        startTNow := A_Now
        startTMSec := A_MSec
        startT := [startTNow, startTMSec]
        ;计算结束时间
        startTNow += waitingSec, s
        stopT := [startTNow, startTMSec]    ;结束时间0
        ;显示进度条
        gui, COLOR, 293d3f
        gui, show, x100 y20 w390 h25
        ;计算改变进度条
        loop {
            noww := [A_Now, A_MSec]
            wide := Floor(NMsecSubt(noww, startT) * 1000 * perMSecWide)
            if (NMsecSubt(noww, stopT) < 0) {
                GuiControl, ,  MyProgress, % wide
                ttttt := % NMsecSubt(stopT, noww)
                StringTrimRight, ttttt, ttttt, 3
                GuiControl, ,  mytex, % ":" ttttt
            }
            else
                break
        }
        GuiControl,, MyProgress, 100
    ExitApp
    
    NMsecSubt(tmlsA, tmlsB) {   ;计算两时间点列表值的差
        subSVar := tmlsA[1]
        subSVar -= tmlsB[1], s  ;两数相减的秒数
        if (subVar != 0) 
            return % subSVar + ((tmlsA[2] - tmlsB[2]) / 1000)
        else
            return % (tmlsA[2] - tmlsB[2]) / 1000
    }
    
    • 惮殃

      Gui, Add, Progress, x-1 y-1 w300 h27 c293d3f Backgroundf6f8da vMyProgress
      改了下第四行,看上去更符合逻辑哈。。
      第八行注释有误,是[每毫秒]

    • hexuren

      非常棒!你参考了不少代码吧!
      经过测试,完全达到预期,不过闪动有点厉害,希望持续改进!
      奖励1000A币

    • 惮殃

      。。。参考代码是没有,就是文档翻晕了。。这个进度条长度计算没有什么难度,以前写游戏脚本用过A_now -= 这样计时,sleep有点尴尬,但是短时内的计时有Msec这样的缺陷我是早发现了,近期是喜欢上list数组列表,刚好练练手也解决一个早期的未了目标什么的。。。

    • 月下马

      你好!我运行的时候,显示第24行;lt;有问题,请问这个怎么解决?

    • ccc

      我也出现这个问题,想自己改下,结果郁闷吐血了

  4. 活了个该

  5. 月下马

    哇~~好多轮子!!学到了学到了!!这个活动好棒!?

  6. 董杰

    学习了

  7. ilaoyao

    我的代码:

    #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
    #Persistent ;保持后台运行
    #SingleInstance FORCE ;单实例运行模式
    SetBatchLines -1

    Gui, +LastFound
    Gui, Color, EAEAEA,2b2b2b
    gui,margin,10,10
    GUI, Font, w200 Q5 s25 bold c2b2b2b , Microsoft Yahei
    GUI, ADD,TEXT, W200 CENTER vtime1, % “01:00:00”
    GUI, Font, s12 norm
    GUI, ADD, BUTTON, Y+30 W200 default gstart, 开始
    GUI, ADD, BUTTON, Y+10 W200 default gcancleme, 重置
    gui,show,autosize center, 倒计时测试
    guicontrol, disable, button2
    return

    start:
    guicontrol, disable, button1
    guicontrol, enable, button2
    settimer, start, 1000
    ControlGetText, temptime, static1, 倒计时测试
    StringReplace, temptime, % temptime, % “:” , % “”, all
    FormatTime, nowtime, ,yyyyMMdd
    nowtime:=nowtime . temptime
    envadd, nowtime, -1, seconds
    formattime, temptime, %nowtime% , HH:mm:ss
    ControlSetText, static1,% temptime,倒计时测试
    return

    cancleme:
    ControlSetText, static1,% “01:00:00”,倒计时测试
    guicontrol, enable, button1
    guicontrol, disable, button2
    settimer, start, off
    return

  8. ilaoyao

    这个页面会自动切换符号?英文的双引号会自动变为中文双引号?
    另外建议在回复开启高级回复模式,能允许贴入代码,这样才不会出错。
    @河许人

  9. ilaoyao

    我的思路是将当前设置的时间比如01:00:00(一个小时),加上当前日期的年月日,合并后对此日期进行second级的递减,然后将递减的数据重新输出为HH:mm:ss的格式,再赋值给前面的初始控件。达到倒计时的目的。如果是整数比如(600秒)这样的,直接递减跟容易。
    设一个定时器,按照1s运行。

  10. yukingzou

    谢谢大神分享,学习

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索