본문 바로가기
- Tips/- Tips 일반

scrcpy(스크린카피) - 마우스 클릭 반복 입력하기

by Vesselor 2024. 7. 14.

scrcpy를 사용하는 주 목적이 실은 매크로를 돌리는건데, autoclicker과 같은 매크로 어플을 사용하는 경우 밴되거나 할 여지가 있기 때문에, 손으로 터치하는 것과 같은 효과를 내는 명령어를 사용하기로 한다. 역시나 검색해보면 monkey를 사용하라는 등 복잡한 말이 나오는데, 나는 잘 모르니까 원초적인 방법으로 시도하기로 함. 

 

우선 이 방법의 목적은

 

- 여러대의 폰에

- 동시에 터치 입력

하기 위한 방법임. 아래 배치파일 코드를 보면 알겠지만, 한 대의 폰에 보내는 좌표가 다르다. 그건 다른 곳을 클릭해야 하므로. 이 정도의 단순한 작업 반복만 가능한 점을 참고할 것. 

 

이 방법을 찾아낸 이유는

 

- 내가 구입한 중고 LG V30 공기계는 

- 메인보드 문제가 고질병인가봄

일반적인 사용에서는 크게 문제가 없지만, 24시간 켜두거나 autoclicker로 장시간 연타를 입력해두면 4~6시간 이면 화면이 꺼져버리는 증상이 발생함. 원래 내가 쓰던 노트9도 함께 돌리는 중인데 노트9는 절대로 이런일이 안생김. 아마도 LG 메인보드가 불량(?)이거나 autoclicker가 충돌 또는 광고를 띄우는 등의 문제가 생겨서 중단되는 느낌이다. 엘지 폰사업 접기를 잘했다. 역시나 삼성. 무튼 최소 12시간은 연속으로 안정적으로 터치를 입력해야 하는데 자꾸 꺼지면 곤란하니까 안정적인 방법을 찾는 과정에서 이것저것 시도해보는 차원에서 정리해 봄. 이게 안되면 솔직히 답없음. 

 

 

1. 우선 adb devices가 scrcpy로 연결된 상태여야함.

아래 포스팅 또는 다른 포스팅 참고

https://vesselor.tistory.com/231

 

scrcpy - 스마트폰 화면을 pc에서 제어

검색어가 정확할지 모르겠지만, 스마트폰을 pc에서 제어하고 싶어서 대충 검색해보면 1. 윈도우10 기본프로그램 2. 삼성 스마트 띵스(?)3. 혹은 에뮬레이터 - 녹스 등등 이 나오는데, 내가 실제로

vesselor.tistory.com

 

 

2. 입력하고 싶은 좌표를 찾아낸다. 

터치좌표를 찾아내려면, 원래 adb shell getevent -l 명령어를 사용하는 방법이 있는데 뭔가 복잡해서 나는 그냥 겐또(?) 때리는 걸로 했다. 야메로 찾아내는 방법. 복잡한게 싫은 사람은 나처럼 하면 됨. 

 

기존에 scrcpy 연결을 위해 띄워둔 아래와 같은 창에서, 

 

adb -s 192.168.0.161:5555 shell input tap 500 500

명령어를 입력하면, 대상 창에서 터치가 작동하는 포지션이 눈으로 보인다. 대충 클릭하면 액션이 뜨는 어플 실행해두고 해보면 대충 알게 됨 500 500 적힌 부분이 x축, y축 좌표이므로 대충 센터 상단쯤 되니까 적당히 바꿔서 실행하다보면 감이 온다.  입력하고 엔터치면 아래처럼 아무것도 없고, 대신 scrcpy로 열어둔 창에 터치 이벤트가 발생한다. 

정확하게 좌표가 필요한 사람은 adb shell getevent -l로 찾는것이 바람직함. 

 

 

3. 배치파일 작성.

한번 만 입력하는게 아니라 지속적인 터치를 만들어야하기 때문에 무한 터치를 위한 매크로를 만들어야하는데, 배치파일로 작성하는게 제일 간단. 아래처럼 넣고 파일명.bat 로 저장하면 된다. 

 

@echo off
adb devices
:loop
set /a count+=1
adb -s 192.168.0.161:5555 shell input tap 500 500
adb -s 192.168.0.162:5555 shell input tap 500 500
adb -s 192.168.0.165:5555 shell input tap 500 500
adb -s 192.168.0.168:5555 shell input tap 500 500
adb -s 192.168.0.172:5555 shell input tap 500 500
adb -s 192.168.0.171:5555 shell input tap 500 900
adb -s 192.168.0.173:5555 shell input tap 500 500
adb -s 192.168.0.174:5555 shell input tap 500 500

if %count%==10 goto break

goto loop
:break
@pause

 

처음부터 무한으로 돌릴 수는 없으니, 테스트 차원에서 10번정도만 입력해서 배치파일을 실행해본다. 잘 작동하는 거 같으면 if %count%==10 goto break는 삭제한다. 그러면 무한 반복됨. 

 

 

4. 시간지연 넣기 - 생략

윈도우 배치파일을 시간지연을 1초 단위로 밖에 넣을 수 없다. 밀리세컨드로 넣으려면 vbs를 만들어서 어쩌고 하는 방법이 있기는 하지만 귀찮으니까 생략한다. 막상 실행해보면 상당히 천천히 루프가 돌아가는 것을 볼 수 있다. 

https://gupu.tistory.com/13

 

[배치파일]ms단위로 딜레이 하는 방법

cmd에서는 timeout으로 초 단위 딜레이만 가능합니다. 그래서 배치파일을 작성하다 보면 0.5초 단위로 딜레이 하는 방법을 알고 싶어 하는 경우가 생길 겁니다. 이 글에서 0.5초 단위뿐만 하니라 0.001

gupu.tistory.com

 

 

5. 막상실행해보면 느림. 

루프 만들어서 넣어보면 알겠지만, 생각보다 느리다 1ms 단위로 무한클릭하는 느낌이아니라 그냥 천천히 실행하는 느낌.  좀 더 무한 빠른 클릭을 하고 싶은데, 딱히 검색해도 나오지도 않는다.

adb devices는 그냥 목록이 떠있으면 좋을 것 같아서 넣어둠. 그래야 연결상태도 볼 수 있으니까. 

 

 

6. 배치파일을 여러개 실하면 빨라짐. 

또 단순 무식하게 생각해서, 만들어놓은 배치파일을 아래처럼 여러개 동시에 실행하면 속도가 빨라진다는 것을 알 수 있다. 7개쯤 실행하니까 다다다다~ 하는 느낌으로 클릭이 됨. 

 

 

이걸 조금만 응요하면 게임들 매크로 돌릴 때 활용할 수 있을 거 같긴 한데... 여기까지 오는것도 귀찮음;;; 

 

 

댓글