Что нового

[Время, дата] Отображение времени работы программы в реальном времени в GUI

Trans

Знающий
Сообщения
257
Репутация
6
Ребят, подскажите пожалуйста, как сделать отображение времени работы скрипта в GUI в реальном времени.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Trans
http://autoit-script.ru/index.php/topic,9077.0.html
если нужно свое время, то можно и так
Код:
$Form1 = GUICreate("Form1", 274, 178, 446, 353)
$Label1 = GUICtrlCreateLabel("0", 72, 96, 84, 17)
GUISetState()

AdlibRegister('_1',1000);отсчитываем секунды и отображаем в окне
While 1
 Switch GUIGetMsg()
        Case -3
            Exit
EndSwitch
WEnd

Func _1()
$read = GUICtrlRead($Label1)
;If $read = 20 then Exit
GUICtrlSetData($Label1,Number($read + 1))
EndFunc
 
Автор
T

Trans

Знающий
Сообщения
257
Репутация
6
Это не много не то, надо чтоб считались секунды, минуты, часы и возможно дни...
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <Timers.au3>

$hGUI = GUICreate("Прошло", 350, 100, -1, -1, -1, $WS_EX_COMPOSITED)
GUISetFont(14)
$clockLabel = GUICtrlCreateLabel("", 20, 35, 300, 20)
GUISetState()

$timer = _Timer_Init()

While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    $time = Round(_Timer_Diff($timer)/1000)
    $tDays = Floor($time/86400)
    $time = Mod($time,86400)
    $tHOUR = Floor($time/3600)
    $time = Mod($time,3600)
    $tMIN = Floor($time/60)
    $tSEC = Mod($time,60)
    GUICtrlSetData($clockLabel,$tDays&" дней "&$tHOUR&" часов "&$tMIN&" минут "&$tSEC&" секунд")
WEnd
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Trans,
[info border=#0000ff float=left]На форуме принято помечать тему решенной после получения ответа на свой вопрос!
Вверху или внизу темы нажмите на ссылку такого вида:
package_old.gif
Тема не решена
[/info]
 

Dere

Новичок
Сообщения
30
Репутация
2
Прошу прощения, я влез в другую тему, но решил не плодить практически одинковых.
Вопрос примерно такой же, только отсчет обратный. К примеру обратный отсчет ну скажем от 5 часов.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Dere [?]
обратный отсчет ну скажем от 5 часов.
Например, так
Код:
Global $iWait = 60 * 60 * 5 ;5 hour in sec

HotKeySet('{Esc}', '_Exit')
AdlibRegister('_Until', 1000)
ToolTip(_SecToTimeFormat($iWait), 0, 0)

While $iWait
	Sleep(1000)
WEnd
MsgBox(64, 'Info', 'Time ended.')
Exit

Func _Exit()
	Exit
EndFunc   ;==>_Exit

Func _Until()
	$iWait -= 1
	ToolTip(_SecToTimeFormat($iWait), 0, 0)
EndFunc   ;==>_Until

Func _SecToTimeFormat($i_Time)
	Local $i_Hour, $i_Min, $i_Sec, $s_Format = '%02d:%02d'

	If $i_Time < 0 Then $i_Time = 0
	$i_Hour = Int($i_Time / 3600)
	$i_Time = Mod($i_Time, 3600)
	$i_Min = Int($i_Time / 60)
	$i_Sec = Mod($i_Time, 60)
	If $i_Hour Then
		Return StringFormat('%02d:' & $s_Format, $i_Hour, $i_Min, $i_Sec)
	Else
		Return StringFormat($s_Format, $i_Min, $i_Sec)
	EndIf
EndFunc   ;==>_SecToTimeFormat
 

Dere

Новичок
Сообщения
30
Репутация
2
спасибо. Через ToolTip интересно. А как это использовать через GUI и желательно засунуть в строку статус бара.
:IL_AutoIt_1:
 
Верх