Добрый день,
Нашёл в справке скрипт с таймером, то есть при запуске скрипта отсчитывается время его работы.Правда, не понимаю откуда берётся вызов функции Timer и как оно привязано к конкретному лейблу,вот сам код из справки:
А также скрипт с подсчётом количества кликов, сделанных мышкой,правда, не оптимизированный какой-то,хотя, может я и ошибаюсь...вообщем, нашёл его на английском форуме, но не знаю как оптимизировать его и привязать к моему ControlClick:
Как мне теперь эту радость правильно привязать к моим лейблам?
И ещё одно - как сделать так, чтоб моя GUI сворачивалась в панель задач (там где часы) и её потом снова можно было восстановить:
Нашёл в справке скрипт с таймером, то есть при запуске скрипта отсчитывается время его работы.Правда, не понимаю откуда берётся вызов функции Timer и как оно привязано к конкретному лейблу,вот сам код из справки:
Код:
; *** Окно демонстрации таймера
#include <GUIConstantsEx.au3>
#include <Date.au3>
Opt("TrayIconDebug", 1)
Global $timer, $Secs, $Mins, $Hour, $Time
_Main()
Func _Main()
;Создание GUI
GUICreate("Таймер", 120, 50)
GUICtrlCreateLabel("00:00:00", 10, 10)
GUISetState()
;Старт таймера
$timer = TimerInit()
AdlibRegister("Timer", 50)
While 1
;FileWriteLine("debug.log",@min & ":" & @sec & " ==> до")
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
;FileWriteLine("debug.log",@min & ":" & @sec & " ==> после")
WEnd
EndFunc ;==>_Main
Func Timer()
_TicksToTime(Int(TimerDiff($timer)), $Hour, $Mins, $Secs)
Local $sTime = $Time ; сохраняет текущее время для проверки и избегания мерцания таймера...
$Time = StringFormat("%02i:%02i:%02i", $Hour, $Mins, $Secs)
If $sTime <> $Time Then ControlSetText("Таймер", "", "Static1", $Time)
EndFunc ;==>Timer
А также скрипт с подсчётом количества кликов, сделанных мышкой,правда, не оптимизированный какой-то,хотя, может я и ошибаюсь...вообщем, нашёл его на английском форуме, но не знаю как оптимизировать его и привязать к моему ControlClick:
Код:
#include <WinAPIGdi.au3>
#include <Misc.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <StaticConstants.au3>
Global $clicks
$clicks=1
$Form1 = GUICreate("Form1", 251, 134, -1, -1)
$Label1 = GUICtrlCreateLabel("Number = ", 24, 8, 196, 25)
$Button1 = GUICtrlCreateButton("Active", 24, 56, 201, 25, 0)
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_Func1()
EndSwitch
WEnd
Func _Func1()
While 1
If _IsPressed(01) Then
GUICtrlSetData($Label1, "Number = " & $clicks)
EndIf
if _IsPressed(01) Then
$clicks += 1
While _IsPressed(01)
Sleep(1)
WEnd
EndIf
WEnd
EndFunc
Как мне теперь эту радость правильно привязать к моим лейблам?
Код:
#include <WinAPIGdi.au3>
#include <Misc.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
Global $Paused, $hGui, $Button1, $Button2, $Button3, $hWnd, $hControl, $fTrigger = False
Opt("GUIOnEventMode", 1) ; Включает режим OnEvent
$hGui = GUICreate(" ", 50, 93, -1, -1, $WS_POPUPWINDOW)
GUISetBkColor(0x88AABB)
$Button1 = GUICtrlCreateButton("Start", 5, 5, 40, 20)
GUICtrlSetOnEvent(-1, '_Button1')
$Button2 = GUICtrlCreateButton("Hide", 5, 26, 40, 20)
GUICtrlSetOnEvent(-1, '_Button2')
$Button3 = GUICtrlCreateButton(" ", 5, 47, 40, 20 )
GUICtrlSetImage(-1, @SystemDir & '\shell32.dll', 42, 0)
GUICtrlSetOnEvent($Button3, '_Button3')
GUICtrlCreatePic(@ScriptDir & '\msoobe.jpg', 5, 68, 40, 20, -1, $GUI_WS_EX_PARENTDRAG)
GUICtrlCreateLabel('00:00:00', 55, 9, 110, 20); здесь я хочу видеть время работы скрипта, чтоб оно запускалось при нажатии первой кнопки Start вместе с основной функцией
GUICtrlCreateLabel('без текста, статичная рамка', 50, 7, 110, 17, $SS_ETCHEDFRAME)
GUICtrlCreateLabel('Clicks:', 50, 30, 80, 17, $SS_LEFT)
;GUICtrlSetBkColor(-1, 0xfdffae)
GUICtrlCreateLabel('123456', 50, 50, 50, 21, -1, $WS_EX_CLIENTEDGE); а здесь видеть количество кликов, которые сделал скрипт(цифры 123456 - это я смотрел как выглядит 6-ти значное число на экране)
GUICtrlCreateLabel('Gold:', 110, 30, 80, 17, $SS_LEFT)
GUICtrlCreateLabel('123456', 110, 50, 50, 21, -1, $WS_EX_CLIENTEDGE)
GUISetState(@SW_SHOW)
; не понимаю как таймер этот привязать к тому лейблу
$timer = TimerInit()
AdlibRegister("Timer", 50)
Func Timer()
_TicksToTime(Int(TimerDiff($timer)), $Hour, $Mins, $Secs)
Local $sTime = $Time ; сохраняет текущее время для проверки и избегания мерцания таймера...
$Time = StringFormat("%02i:%02i:%02i", $Hour, $Mins, $Secs)
If $sTime <> $Time Then ControlSetText("Таймер", "", "Static1", $Time)
EndFunc ;==>Timer
While 1
;здесь сам скрипт в цикле
If $aPix[0][0] And ConsoleWrite('+1') Then ControlClick($hWnd, "", $hControl, "left", 1, $aPix[1][0], $aPix[1][1] + 55)
;вот этот клик подсчитать бы
EndIf
Sleep(3000)
WEnd
;-------------------------------
Func _Button1() ; основное тело скрипта
GUICtrlSetData($Button1, 'Run')
TrayTip("Запуск программы", "Программа работает", 5, 1)
EndFunc ;==>_Button1
И ещё одно - как сделать так, чтоб моя GUI сворачивалась в панель задач (там где часы) и её потом снова можно было восстановить:
Код:
Func _Button4()
WinSetState($hGui, "", @SW_HIDE)
EndFunc ;==>_Button4