xz00311 发表于 2015-7-28 12:08:56

【已解决】程序运行时间实时显示修改版(天数的时候就会有问题)

本帖最后由 xz00311 于 2015-8-2 00:49 编辑

#Region ACN预处理程序参数(常用参数)
#PRE_Icon=                                                                                 ;图标,支持EXE,DLL,ICO
#PRE_OutFile=                                                                        ;输出文件名
#PRE_OutFile_Type=exe                                                        ;文件类型
#PRE_Compression=4                                                                ;压缩等级
#PRE_UseUpx=y                                                                         ;使用压缩
#PRE_Res_Comment=                                                                 ;程序注释
#PRE_Res_Description=                                                        ;详细信息
#PRE_Res_Fileversion=                                                        ;文件版本
#PRE_Res_FileVersion_AutoIncrement=p                        ;自动更新版本
#PRE_Res_LegalCopyright=                                                 ;版权
#AutoIt3Wrapper_Res_ProductVersion=             ;产品版权
#AutoIt3Wrapper_Res_Field=Productname|          ;产品名称
#AutoIt3Wrapper_Res_Field=CompanyName|          ;公司名称
#AutoIt3Wrapper_Res_Field=LegalTrademarks|      ;法律商标
#AutoIt3Wrapper_Res_Field=OriginalFilename|   ;原始文件名
#PRE_Change2CUI=N                                           ;修改输出的程序为CUI(控制台程序)
;#PRE_Res_Field=AutoIt Version|%AutoItVer%                ;自定义资源段
;#PRE_Run_Tidy=                                                   ;脚本整理
;#PRE_Run_Obfuscator=                                                      ;代码迷惑
;#PRE_Run_AU3Check=                                                         ;语法检查
;#PRE_Run_Before=                                                                 ;运行前
;#PRE_Run_After=                                                                ;运行后
;#PRE_UseX64=n                                                                        ;使用64位解释器
;#PRE_Compile_Both                                                                ;进行双平台编译
;#AutoIt3Wrapper_Res_ProductVersion=            ;产品版权
;#AutoIt3Wrapper_Res_Field=CompanyName|         ;公司名称
;#AutoIt3Wrapper_Res_Field=Productname|         ;产品名称
;#AutoIt3Wrapper_Res_Field=Compatibility|       ;操作系统兼容性
;#AutoIt3Wrapper_Res_Field=FileDescription|   ;文件描述
;#AutoIt3Wrapper_Res_Field=InternalName|      ;内部名称
;#AutoIt3Wrapper_Res_Field=LegalTrademarks|   ;法律商标
;#AutoIt3Wrapper_Res_Field=OriginalFilename|    ;原始文件名
#EndRegion ACN预处理程序参数设置完成
#cs ____________________________________

Au3 版本:
脚本作者:
电子邮件:
        QQ/TM:
脚本版本:
脚本功能:

#ce _______________脚本开始_________________
#include <Date.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiStatusBar.au3>
Global $timerL,$Day = 0
$Form1_1 = GUICreate('运行时间实时显示', 300, 130)
GUICtrlCreateLabel('本程序已运行:', 90, 70, 100, 15)
Dim $tl = GUICtrlCreateLabel('00天,00时,00分,00秒', 180, 70, 150, 15)
$Button1 = GUICtrlCreateButton("时间开始运行", 40, 16, 81, 33)
$Button2 = GUICtrlCreateButton("时间重置", 140, 16, 81, 33)
GUISetState()
Dim $timer = TimerInit(), $Day = 0
AdlibRegister('Timer', 500)

$StatusBar1 = _GUICtrlStatusBar_Create($Form1_1)
_GUICtrlStatusBar_SetText($StatusBar1, '00天,00时,00分,00秒');
_GUICtrlStatusBar_SetMinHeight($StatusBar1, 17)

While 1
        $nMsg = GUIGetMsg()
        ;Switch $nMsg
        Select
                Case $nMsg = $GUI_EVENT_CLOSE
                        Exit
                Case $nMsg =$Button1
                        s()
                Case $nMsg =$Button2
                        AdlibUnRegister('TimerL')       
                        GUICtrlSetData($tl, '00天,00时,00分,00秒')       
        EndSelect
WEnd

Func s()
        $timerL = TimerInit()
        AdlibRegister('TimerL', 500)
EndFunc                       
       


Func Timer()
      Local $Secs, $Mins, $Hour, $Time, $ticks, $sTime
      $ticks = Int(TimerDiff($timer)) * 50000 ;这里*5000是为了测试,将时间提速5000倍
      If $ticks >= 86400000 Then
                $Day += 1
                $timer = TimerInit()
                $ticks = 0
      EndIf
      _TicksToTime($ticks, $Hour, $Mins, $Secs)
      $Time = StringFormat('%02s天,%02s时,%02s分,%02s秒', $Day, $Hour, $Mins, $Secs)
      If $sTime <> $Time Then   
                        _GUICtrlStatusBar_SetText($StatusBar1, $Time)       
                EndIf       
      $sTime = $Time
EndFunc   ;==>Timer
       
Func TimerL()
      Local $Secs, $Mins, $Hour, $Time, $ticks, $sTime
      $ticks = Int(TimerDiff($timerL)) * 50000 ;这里*5000是为了测试,将时间提速5000倍
      If $ticks >= 86400000 Then
                $Day += 1
                $timerL = TimerInit()
                $ticks = 0
      EndIf
      _TicksToTime($ticks, $Hour, $Mins, $Secs)
      $Time = StringFormat('%02s天,%02s时,%02s分,%02s秒', $Day, $Hour, $Mins, $Secs)
      If $sTime <> $Time Then GUICtrlSetData($tl, $Time)       
      $sTime = $Time
EndFunc   ;==>Timer                        天数的时候就会有问题,请教一下这个要咋样处理才行

haijie1223 发表于 2015-7-28 14:18:18

不知所云~~·

afan 发表于 2015-7-29 12:29:20

不知所云~~·

xz00311 发表于 2015-8-2 00:50:22

找朋友解决了,原来变量用了同一个才会出现天数的问题

ap112 发表于 2015-8-3 16:11:51

请问这个有什么实际使用的意义吗?

ap112 发表于 2015-8-3 16:11:55

请问这个有什么实际使用的意义吗?

cutyourchicken 发表于 2015-8-4 17:49:16

肯定是变量用错了~~~
页: [1]
查看完整版本: 【已解决】程序运行时间实时显示修改版(天数的时候就会有问题)