2016-07-01 3 views
-2

AutoIT를 처음 사용하고 있으며, 2 분마다 마우스를 움직여 세션이 시간 초과되지 않도록 무언가를 제작하고 있습니다. 문제는 비록 나의 코드가 문법 에러를 제공하지 않더라도 작동하지 않아 내가하고 싶은 일을 온라인으로 자습서를 찾지 못하는 것입니다. 다음과 같이 내 코드는 다음과 같습니다 AutoIT로 3 분마다 동작 수행

enter image description here

당신은 변수를 선언에만 global 키워드가 필요합니다 : 당신이 SciTE에서 스크립트를 실행하면 다음과 같은 오류 메시지가 표시되어야합니다

global $x = 1 
global $y = 1 
If Mod(@MIN, 3) = 0 Then 
    MouseMove (global $x, global $y, 2) 
    global $x++ 
    global $y++ 
endif 

답변

1

시간 초과 통화에 대한 콜백 기능을 수행하는 것이 더 유용합니다.

AdlibRegister('_MouseMove', 2000*60) ; calls the function every 2000*60 ms 
OnAutoItExitRegister('_UnRegister') ; unregister the callback function when the script ends 

Func _MouseMove() 
    Local $aPos = MouseGetPos() 
    ; move 1px right and back after a short brake - so that your interface can detect the movement 
    MouseMove($aPos[0]+1, $aPos[1]) 
    Sleep(50) 
    MouseMove($aPos[0], $aPos[1]) 
EndFunc 

Func _UnRegister() 
    AdlibUnRegister('_MouseMove') 
EndFunc 

는 Btw는 : AutoIt이와 값을 증가 시키면 이렇게 작동

$x += 1 

편집 : 당신이 2 ~ 3 분 원한다면 내가 확실하지 않다 (둘 다 작성했습니다). 따라서 AdlibRegister()의 time 매개 변수에서이를 변경할 수 있습니다. 간격은 ms로 지정해야합니다.

0

. 변수를 사용할 때는 global 키워드를 생략해야합니다. 그에 따라 스크립트를 변경해야하며 작동 할 수도 있습니다.

0

다음 스크립트는 컴퓨터 사용에 미치는 영향을 최소화하면서 세션 시간 제한을 방지하기 위해 3 분마다 한 픽셀 씩 마우스를 이동합니다.

HotKeySet("{ESC}" , "Sair") 

While True 
    MouseMove(MouseGetPos(0)+1,MouseGetPos(1)) 
    Sleep(180000) 
    MouseMove(MouseGetPos(0)-1,MouseGetPos(1)) 
    Sleep(180000) 
WEnd 


Func Sair() 
    Exit 
EndFunc 
+0

코드 전용 답변은 별 가치가 없으므로 잘못된 대답으로 간주되므로이 코드가 문제를 해결하는 이유를 설명하십시오. – RHA