본문 바로가기

Tip/AHKmacro

AutoHotKey 일정 영역을 랜덤 클릭 하기 - 소스 공개

이번엔 오토핫키로 일정 영역을 랜덤 클릭하는 매크로를 짜보았습니다.

오토핫키를 공부하시는데 참고하시길 바라며 소스를 공개합니다.



;~ 아래는 마우스와 매크로 명령 딜레이를 0으로 해주는겁니다.
;~ 빨라지나 과하게 설정하면 CPU점유율이 상승합니다.

SetDefaultMouseSpeed,0 
SetKeyDelay,0
SetControlDelay,0
SetBatchLines 0 
SetWinDelay,0
SetMouseDelay,0

;~ coordmode는 픽셀관련, 마우스 관련 동작할때 위치 기준을 잡는 선언입니다.
;~ 본 예제는 Screen 전체화면 모드입니다.

CoordMode,Pixel,Screen
CoordMode,Mouse,Screen

;특정 좌표의 일정영역을 랜덤하게 클릭 단축키 컨트롤+HOME 키
^Home::

;~ 그림판의 창의 위치와 창의 크기를 변수에 저장
WinGetPos, X, Y, Width, Height, ahk_class MSPaintApp

;~ 그림판 창 활성화
WinActivate, ahk_class MSPaintApp

;~ 창의 중간 영역(0.5,0.5)에 50픽셀 정사각형의 영역을 설정
varX:=50 ;일정영역(박스) 크기 픽셀 X축
varY:=50 ;일정영역(박스) 크기 픽셀 Y축
ratioX:=0.5 ;일정영역의 위치 0.9면 창의 90% 위치. 0.5면 중간
ratioY:=0.5
;~ floor는 소숫점 버림 입니다.
boxX:=X+floor((Width-varX)*ratioX)
boxY:=Y+floor((Height-varY)*ratioY)

loop, 500
{
	;~ boxX축에서 boxX축에다 박스 가로크기 더한 만큼의 값 중에 랜덤
	Random, Xpos,boxX,boxX+varX
	Random, Ypos,boxY,boxY+varY
	MouseClick,left,Xpos,Ypos
}
return


;~ 아래는 제가 테스트용으로 AHK를 만들때 항상 넣는 단축키입니다.
;~ 종료,멈춤,새로고침 3종 세트입니다.

^End::ExitApp
Pause::Pause
^PGUP::Reload
return

아래는 실행 결과입니다.


반응형
  • 초보자입니다 2015.12.09 12:54

    클릭속도를 줄이고싶은데 그건 어떻게 해야하는지요..

    • 확인소장 2016.05.04 15:41 신고

      마우스 동작 전에 마우스 속도를 설정(정의)합니다.
      SetDefaultMouseSpeed,0
      SetMouseDelay,-1
      이렇게 하면 마우스가 움직이는게 보이지 않을정도로 빠릅니다.
      더 줄이고자 하면
      SetBatchLines,-1
      행간 딜레이를 없애버리면 더 빨라집니다만 CPU 점유율은 급상승하게 되어 버벅이게 됩니다.

  • 초보자입니다 2015.12.09 14:04

    한가지.. 그림판 말고 인터넷창이나 다른창에 적용하려면 어떻게 해야 할까요..ㅠ