Приветствую вас, друзья.
Перед вами скрипт:
Рефрешер стопится без проблем.
МоусМувер нет. Реакция на баттон4 (СтопММ) никакой. Пробовал и эту функцию делать через регистер AdlibRegister("MouseMover") - AdlibUnRegister("MouseMover"), но результат аналогичный. Пробовал через флаги (if a=1 bla bla bla, StopMM() a=0). Пробовал через While. Во всех кейсах StopMM() не вызывался. + счетчик (каунтер) цикла ММ считается по +2, а не +1, как задано.
Есть ли у кого какие идеи, почему так происходит?
Перед вами скрипт:
Код:
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>
HotKeySet("{ESC}", "Terminate")
$Form1 = GUICreate('Auto refresher and mouse mover v0.9', 640, 480)
GUICtrlCreateLabel('X-coord Start:', 10, 10, 100, 20)
GUICtrlCreateLabel('Y-coord Start:', 10, 40, 100, 20)
GUICtrlCreateLabel('X-coord Finish:', 260, 10, 100, 20)
GUICtrlCreateLabel('Y-coord Finish:', 260, 40, 100, 20)
GUICtrlCreateLabel('Refresh and move frequency (s):', 10, 120, 100, 30)
$Input1sx = GUICtrlCreateInput(@DesktopWidth/2, 120, 10, 100, 20, BitOR(0x0002, 0x2000))
GUICtrlCreateUpdown(-1, 0x80)
GUICtrlSetLimit(-1, @DesktopWidth, 0)
$Input2sy = GUICtrlCreateInput(@DesktopHeight/2, 120, 40, 100, 20, BitOR(0x0002, 0x2000))
GUICtrlCreateUpdown(-1, 0x80)
GUICtrlSetLimit(-1, @DesktopHeight, 0)
$Input3fx = GUICtrlCreateInput(@DesktopWidth/2, 380, 10, 100, 20, BitOR(0x0002, 0x2000))
GUICtrlCreateUpdown(-1, 0x80)
GUICtrlSetLimit(-1, @DesktopWidth, 0)
$Input4fy = GUICtrlCreateInput(@DesktopHeight/2, 380, 40, 100, 20, BitOR(0x0002, 0x2000))
GUICtrlCreateUpdown(-1, 0x80)
GUICtrlSetLimit(-1, @DesktopHeight, 0)
$Input5rf = GUICtrlCreateInput(240, 120, 120, 100, 20, BitOR(0x0002, 0x2000))
GUICtrlCreateUpdown(-1, 0x80)
$Input6statusR = GUICtrlCreateInput("OFF", 10, 400, 120, 20, 0x0800)
$Input7statusM = GUICtrlCreateInput("OFF", 140, 400, 120, 20, 0x0800)
$Input8status = GUICtrlCreateInput(0, 270, 400, 120, 20, 0x0800)
$Button1 = GUICtrlCreateButton('Start refresher', 10, 450, 120, 20)
$Button2 = GUICtrlCreateButton('Start mouse mover', 140, 450, 120, 20)
$Button3 = GUICtrlCreateButton('Stop refresher', 270, 450, 120, 20)
$Button4 = GUICtrlCreateButton('Stop mouse mover', 400, 450, 120, 20)
Global $iCoordXsx, $iCoordYsy, $iCoordXfx, $iCoordYfy, $iTime, $iStatusR, $iStatusM, $iCount
GUISetState()
While 1
Switch GUIGetMsg()
Case -3
Exit
Case $Button1
StartR()
Case $Button2
$iCount = 1
StartMM()
Case $Button3
StopR()
Case $Button4
$iCount = 99999
StopMM()
EndSwitch
WEnd
Func StartR()
$iTime = GUICtrlRead($Input5rf)
AdlibRegister("Refresher", $iTime*1000)
EndFunc
Func StartMM()
$iCoordXsx = GUICtrlRead($Input1sx)
$iCoordYsy = GUICtrlRead($Input2sy)
$iCoordXfx = GUICtrlRead($Input3fx)
$iCoordYfy = GUICtrlRead($Input4fy)
$iTime = GUICtrlRead($Input5rf)
For $iCount = 1 to 99999
GUICtrlCreateInput("ON", 140, 400, 120, 20, 0x0800)
MouseMove ( $iCoordXsx, $iCoordYsy, 300)
Sleep($iTime*1000)
MouseMove ( $iCoordXfx, $iCoordYfy, 500)
$Input8status = GUICtrlCreateInput($iCount, 270, 400, 120, 20, 0x0800)
$iCount = $iCount + 1
if $iCount >= 99999 Then
StopMM()
EndIf
Next
EndFunc
Func StopR()
AdlibUnRegister("Refresher")
GUICtrlCreateInput("OFF", 10, 400, 120, 20, 0x0800)
EndFunc
Func StopMM()
$iCount = 99999
GUICtrlCreateInput("OFF", 140, 400, 120, 20, 0x0800)
EndFunc
Func Refresher()
GUICtrlCreateInput("ON", 10, 400, 120, 20, 0x0800)
Send('{F5}')
EndFunc
Func MouseMover()
GUICtrlCreateInput("ON", 140, 400, 120, 20, 0x0800)
MouseMove ( $iCoordXsx, $iCoordYsy, 300)
Sleep($iTime*1000)
MouseMove ( $iCoordXfx, $iCoordYfy, 500)
EndFunc
Func Terminate()
Exit
EndFunc ;==>Terminate
Рефрешер стопится без проблем.
МоусМувер нет. Реакция на баттон4 (СтопММ) никакой. Пробовал и эту функцию делать через регистер AdlibRegister("MouseMover") - AdlibUnRegister("MouseMover"), но результат аналогичный. Пробовал через флаги (if a=1 bla bla bla, StopMM() a=0). Пробовал через While. Во всех кейсах StopMM() не вызывался. + счетчик (каунтер) цикла ММ считается по +2, а не +1, как задано.
Есть ли у кого какие идеи, почему так происходит?