이번엔 오토핫키로 일정 영역을 랜덤 클릭하는 매크로를 짜보았습니다.
오토핫키를 공부하시는데 참고하시길 바라며 소스를 공개합니다.
;~ 아래는 마우스와 매크로 명령 딜레이를 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
아래는 실행 결과입니다.
반응형
클릭속도를 줄이고싶은데 그건 어떻게 해야하는지요..
마우스 동작 전에 마우스 속도를 설정(정의)합니다.
SetDefaultMouseSpeed,0
SetMouseDelay,-1
이렇게 하면 마우스가 움직이는게 보이지 않을정도로 빠릅니다.
더 줄이고자 하면
SetBatchLines,-1
행간 딜레이를 없애버리면 더 빨라집니다만 CPU 점유율은 급상승하게 되어 버벅이게 됩니다.
한가지.. 그림판 말고 인터넷창이나 다른창에 적용하려면 어떻게 해야 할까요..ㅠ
그림판 창 이름이 ahk_class MSPaintApp
이겁니다.
다른 창은 저것을 해당 창 이름에 맞게 입력하면 됩니다.