카카오톡 채팅방 메시지 자동 발송 매크로 만들기
카카오톡 채팅방에서 특정 메시지를 감지하여 메시지 보내는 기능 만들기
1. 모듈 설치
이미지를 감지하고, 키보드, 마우스 컨트롤을 하기 위해, PyAutoGUI 모듈과 OpenCV 모듈이 필요하다
pip install pyautogui
pip install opencv-python
https://pypi.org/project/PyAutoGUI/
PyAutoGUI
PyAutoGUI lets Python control the mouse and keyboard, and other GUI automation tasks. For Windows, macOS, and Linux, on Python 3 and 2.
pypi.org
https://pypi.org/project/opencv-python/
opencv-python
Wrapper package for OpenCV python bindings.
pypi.org
2. 이미지 저장
감지할 이미지를 저장한다
(누군가 hi라는 카카오톡을 입력 시, 메세지를 보내는 기능을 만들기 위해
hi라는 카카오톡 메시지를 이미지로 저장했다)
저장한 이미지는 실행시킬 코드와 같은 폴더에 넣어준다
3. 필요한 모듈 불러오기
import pyautogui
import os
import time
import pyperclip
4. 보낼 메세지 변수 만들기
msg = """
안녕하세요
반갑습니다
"""
5. 이미지 찾기
pyautogui 모듈을 이용해서 이미지를 찾고, 그 위치를 가져온다
(confidence로 찾을 이미지의 정확도 설정, region으로 찾을 영역 설정 가능)
찾으면 send_message 함수로 들어가고, 못찾으면 반복한다
#이미지를 찾을 디렉토리를 현재 파일이 있는 디렉토리로 변경
os.chdir(os.path.dirname(os.path.abspath(__file__)))
# 이미지 위치 찾기
while True:
try:
center = pyautogui.locateCenterOnScreen('hi.png',confidence=0.9)
print(center)
send_message(center)
except:
time.sleep(1)
continue
# 이미지의 시작 위치 찾기
pyautogui.locateOnScreen('찾을 이미지 파일 명', confidence='정확도', region='찾을 위치')
# 이미지의 가운데 위치 찾기
pyautogui.locateCenterOnScreen('찾을 이미지 파일 명', confidence='정확도', region='찾을 위치')
코드 실행 시, 결과값으로 x,y 좌표를 반환 ↓
6. 메시지 보내기
send_message 함수에서 위치를 변수로 받고
'hi' 텍스트의 50px 아래 위치에 보낼 msg를 붙여넣기 한 뒤, 'enter'버튼으로 메시지를 보낸다
def send_message(pos):
print(pos)
# print(pos.x)
pyperclip.copy(msg)
pyautogui.click(x=pos.x, y=pos.y+50)
pyautogui.hotkey('Ctrl','v')
pyautogui.press('enter')
time.sleep(300)
(도배 방지를 위해, 번 돌아간 뒤 300초의 딜레이 타임을 설정함)
완성 코드
import pyautogui
import os
import time
import pyperclip
mes = """
안녕하세요
반갑습니다"""
def send_message(pos):
print(pos)
# print(pos.x)
pyperclip.copy(mes)
pyautogui.click(x=pos.x, y=pos.y+50)
pyautogui.hotkey('Ctrl','v')
pyautogui.press('enter')
time.sleep(300)
# 특정 위치에서 찾기
region = (100,200,300,400) #100*200 위치에서 300*400크기의 영역 검색
#이미지를 찾을 디렉토리를 현재 파일이 있는 디렉토리로 변경
os.chdir(os.path.dirname(os.path.abspath(__file__)))
# 이미지 위치 찾기
while True:
try:
center = pyautogui.locateCenterOnScreen('hi.png',confidence=0.9)
print(center)
send_message(center)
except:
time.sleep(1)
continue
실행 결과
1. hi 텍스트 이미지를 감지
2. 안녕하세요 반갑습니다 메시지 전송
'개발기록 > python' 카테고리의 다른 글
[python] 셀레늄 우회 로컬에서 크롬 실행 (자동화된 테스트 소프트웨어에 의해 제어) (0) | 2025.06.04 |
---|---|
[python] 자료구조 (0) | 2025.04.07 |
[python] datetime 현재시간 구하기 시간비교 (0) | 2025.02.20 |
[python] 주파수 신호 분석 방법론 3 - Wavelet 변환 (0) | 2024.11.26 |
[python] 주파수 신호 분석 방법론 2 - STFT (Short Time Fourier Transform) (1) | 2024.11.25 |
댓글