Тема: AHK: Оптимизировать отзывчивость GUI
Здравствуйте! Сделал вот такой скрипт:
DetectHiddenWindows, on
OnMessage(0x201, "WM_LBUTTONDOWN")
OnMessage(0x204, "WM_RBUTTONDOWN")
SetTimer, TimeCount, 500
Gui, -Caption +AlwaysOnTop +Lastfound +ToolWindow HwndGUIhWnd
Gui, Margin, 0, 0
Gui, Color, a1a1a1
Gui, Font, w900 cRed s12
Gui, Add, Text, +Center x5 y0 w25 h20 gAddCopies
Gui, Add, Text, +Center x45 y0 w25 h20
Gui, Add, Text, +Center x87 y0 w25 h20
Gui, Add, Picture, x0 y0, 0001.png
Gui, Show, % "x"A_ScreenWidth-120 "y"A_ScreenHeight-70
Return
TimeCount:
GetCurSettings(curCopies, curBright, curContrast)
ControlSetText, Static1, %curCopies%, % "ahk_id"GUIhWnd
ControlSetText, Static2, %curBright%, % "ahk_id"GUIhWnd
ControlSetText, Static3, %curContrast%, % "ahk_id"GUIhWnd
Return
AddCopies:
NewCopies = 0
NewCopies += (curCopies + 1)
ControlSetText, WindowsForms10.EDIT.app.0.3aa54a01, %NewCopies%, iCopy
WM_LBUTTONDOWN()
{
If A_Gui
PostMessage, 0xA1, 2
}
WM_RBUTTONDOWN()
{
GetCurSettings(curCopies, curBright, curContrast)
MouseGetPos,,,,ControlName
if ControlName = Static1
{
NewCopies = 0
NewCopies := (curCopies - 1)
ControlSetText, WindowsForms10.EDIT.app.0.3aa54a01, %NewCopies%, iCopy
}
}
GetCurSettings(ByRef val1, ByRef val2, ByRef val3)
{
ControlGetText, curCopies, WindowsForms10.EDIT.app.0.3aa54a01, iCopy ahk_class WindowsForms10.Window.8.app.0.3aa54a0 ;Количество
ControlGetText, curBright, WindowsForms10.EDIT.app.0.3aa54a02, Настройки изображения ahk_class WindowsForms10.Window.8.app.0.3aa54a0 ;Яркость
ControlGetText, curContrast, WindowsForms10.EDIT.app.0.3aa54a01, Настройки изображения ahk_class WindowsForms10.Window.8.app.0.3aa54a0 ;Контраст
val1 := curCopies
val2 := curBright
val3 := curContrast
}
Его функционал меня устраивает. Всё отрабатывает надёжно и без ошибок. Но! Там есть один момент.
При клике левой мышки по текст-контроллу моего GUI, автоматически, на одну единицу, увеличивается значение в поле edit другой программы. При клике правой мышки, наоборот - это значение на единицу уменьшается. Этот процесс происходит быстро, только в первый раз и если мне нужно сделать несколько подряд изменений значения(например на три), то это происходит с маленькой паузой, что очень раздражает и просто притормаживает процесс, что является противоположностью того, ради чего я создавал этот скрипт. )))
Подскажите пожалуйста, как можно оптимизировать данную задачу?
(прошу не пинать за огрехи в коде(уверен таковые там имеются), код сделан нубски, "собирательным" методом... )