본문 바로가기
목차
Python

[Ex] PyAutoGUI - 마우스 이동 및 클릭

by ds31x 2025. 7. 14.
728x90
반응형

1-1. 실행 전 준비

  1. Windows 탐색기 또는 macOS Finder를 open
  2. 해당 창 안에 다음 아이템들을 준비:
    • 왼쪽에 작은 텍스트 파일 하나 (예: test.txt)
    • 오른쪽에 폴더 하나 (예: target_folder)
  3. 아이콘 보기 모드는 “아이콘 보기” 또는 “정렬 해제” 등으로 설정해서 위치를 자유롭게 조정.
  4. pyautogui.mouseInfo() 또는 pyautogui.position()으로 각 아이콘 중심 좌표를 측정.
    • 예: file_x = 400, file_y = 300, folder_x = 700, folder_y = 300


1-2. 실습 코드: “파일을 폴더로 드래그하여 옮기기”

import pyautogui
import time
import pynput

# 앞서 "실행 전 준비"에서 측정한 좌표를 여기에 입력
file_x, file_y = 573, 813
folder_x, folder_y = 754, 813

# 준비 시간 3초
time.sleep(3)

# ----------------------------------------
# 절대 좌표로 드래그하여 파일 옮기기
# ----------------------------------------
pyautogui.moveTo(file_x, file_y, duration=0.5)
pyautogui.mouseDown(button='left')
pyautogui.dragTo(folder_x, folder_y, button='left', duration=0.5)
pyautogui.mouseUp(button='left')

## ----------------------------------------
## 상대 좌표로 드래그하려면 아래 코드 사용
## 위 절대좌표 블록은 주석 처리하고,
## 아래 주석을 해제해 실행해보세요.
# pyautogui.moveTo(file_x, file_y, duration=0.5)
# pyautogui.mouseDown(button='left')
# pyautogui.drag(folder_x-file_x, 0,button='left', duration=0.5)  # 오른쪽으로 차이만큼 이동
# pyautogui.mouseUp(button='left')

2-1. 실행 전 준비

  1. Windows 탐색기 또는 macOS Finder로 스크롤이 될 정도로 양이 많은 디렉토리 open
  2. 스크롤이 되는 위치에 마우스 커서를 가져다 놓고 pyautogui.mouseInfo() 또는 pyautogui.position()으로 좌표를 측정.
    • 예: x = 400, y = 300

2-2. 실습 코드

import pyautogui
import time

# 앞서 "실행 전 준비"에서 측정한 좌표를 여기에 입력
x, y = 400, 300

# ----------------------------------------
# 스크롤
# not working on macOS
pyautogui.click(x, y, duration=0.5)
time.sleep(0.2)
pyautogui.scroll(-100)
time.sleep(0.2)
pyautogui.scroll(100)

# working on both os.
from pynput.mouse import Controller

mouse = Controller()
mouse.scroll(0, 100) # macOS (Native): down scroll
728x90

'Python' 카테고리의 다른 글

[Ex] PyAutoGUI - 화면 캡처 및 이미지 인식  (0) 2025.07.15
[Ex] PyAutoGUI - 키보드 입력  (2) 2025.07.14
[Ex] Input_Recoder and Replayer  (0) 2025.07.14
pyautogui 기본 사용법  (5) 2025.07.14
[Py] String Interning  (0) 2025.07.07