-
AutoIt
(
http://forum.oszone.net/forumdisplay.php?f=103)
Создание авто опроса событий GUI
Вот есть прога:
Код:
#include <Date.au3>
#include <GUIConstants.au3>
GUICreate("Дата и Время", 300, 100)
$datetime = GUICtrlCreateLabel("Текущая дата и время: " & _Now(), 1, 50)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $datetime
GUICtrlSetData($datetime, "Текущая дата и время: " & _Now())
Case $msg = $GUI_EVENT_CLOSE
MsgBox(0, "GUI", "Выход...")
ExitLoop
EndSelect
WEnd
Мне нужно чтобы время обновлялось не при нажатии, а само. ТО есть были бы часы как встроенные в Windows XP. Помогите плиз.
|
Код:
#include <Date.au3>
#include <GUIConstants.au3>
GUICreate("Дата и Время", 300, 100)
$datetime = GUICtrlCreateLabel("Текущая дата и время: " & _Now(), 1, 50)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
MsgBox(0, "GUI", "Выход...")
ExitLoop
EndSelect
GUICtrlSetData($datetime, "Текущая дата и время: " & _Now())
WEnd
Можно так.
А лучше так:
Код:
#include <Date.au3>
#include <GUIConstants.au3>
GUICreate("Дата и Время", 300, 100)
$datetime = GUICtrlCreateLabel("Текущая дата и время: " & _Now(), 1, 50)
GUISetState(@SW_SHOW)
AdlibEnable("Time",1000)
While 1
$msg = GUIGetMsg()
Select
Case $GUI_EVENT_CLOSE
AdlibDisable()
Exit
EndSelect
WEnd
Func Time()
GUICtrlSetData($datetime, "Текущая дата и время: " & _Now())
EndFunc
|
Такой пример есть в справке к функций _TimeToTicks.
А вот более продвинуты пример:
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Timers.au3>
;
Global $iTimer, $sTDelim = _DateTimeGetDelim()
$hGUI = GUICreate("Time Script", 220, 90, -1, -1, BitOR($WS_CAPTION, $WS_POPUP, $WS_SYSMENU))
$Time_Label = GUICtrlCreateLabel("Текущее время: " & _DateTimeGetCurrentTime($sTDelim), 40, 60)
$iTimer = _Timer_SetTimer($hGUI, 1000, "_Set_SystemTime_Proc")
GUISetState(@SW_SHOW, $hGUI)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
_Timer_KillTimer($hGUI, $iTimer)
Exit
EndSwitch
WEnd
Func _Set_SystemTime_Proc($hWnd, $nMsg, $lParam, $wParam)
GUICtrlSetData($Time_Label, "Текущее время: " & _DateTimeGetCurrentTime($sTDelim))
EndFunc
Func _DateTimeGetCurrentTime($sTDelim=":")
Return @HOUR & $sTDelim & @MIN & $sTDelim & @SEC
EndFunc
Func _DateTimeGetDelim($sNowTime="")
Local $sRetDelim = RegRead("HKEY_CURRENT_USER\Control Panel\International", "sTime")
If $sRetDelim = "" And $sNowTime <> "" Then $sRetDelim = StringLeft(StringRegExpReplace($sNowTime, "[0-9]", ""), 1)
If $sRetDelim = "" Then $sRetDelim = ":"
Return $sRetDelim
EndFunc
P.S
А как оно связано с авто опросом элементов GUI?
|
Цитата:
Цитата Creat0R
P.S
А как оно связано с авто опросом элементов GUI? »
|
Я думал что есть что то типа такой функции
|
Цитата:
Цитата Creat0R
Func _Set_SystemTime_Proc($hWnd, $nMsg, $lParam, $wParam)
GUICtrlSetData($Time_Label, "Текущее время: " & _DateTimeGetCurrentTime($sTDelim))
EndFunc »
|
А зачем нужны аргументы $hWnd, $nMsg, $lParam, $wParam, если в теле функции они не используются?
|
Время: 16:01.
© OSzone.net 2001-