NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    Python Python - 파이썬을 이용하여 매크로 만들기.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 엔지엠소프트웨어 홈페이지의 자유 게시판에는 파이썬으로 만들어진 매크로 프로그램들이 몇개 있습니다. 이외에도 다양한 프로그램들을 공유하고 있으니 아래 링크를 클릭해서 필요한 프로그램이 있는지 확인 해보세요^^

    [ 무료 소프트웨어 다운로드 ]

     

    Yolo 딥러닝 매크로를 제작하기 위해서 데이타셋을 만들고 학습을 통해 모델을 만드는 방법도 알아봤는데요. 파이썬을 이용해서 모델을 학습시켰기 때문에 딥러닝에 관심있는 분들은 이미 파이썬 개발 환경을 갖추고 있을겁니다. 환경이 구성된김에 파이썬으로 매크로 프로그램을 어떻게 만드는지 알아보도록 할께요.

    [ 파이썬 개발 환경 만들기 ]

     

    아나콘다에서 비주얼 스튜디오 코드를 실행하세요. 새 파일을 만들고, macro.py 이름으로 파일을 저장하세요.

    7l3841b.png

     

     

    파이썬 매크로 프로그램의 핵심은 "pyautogui 라이브러리를 얼마나 잘 활용할 수 있느냐"입니다. 이 글에서는 간단한 테스트만 해볼 수 있지만, 다양한 매크로 구현을 위해 관련 라이브러리들의 도움말을 정독하시는걸 추천드립니다. 물론, 필요한 기능이 있을때마다 구글에서 검색하면 정말 다양한 예제 코드들이 나옵니다. 특히나 ChatGPT를 잘 활용한다면 어설프긴해도 매크로 프로그램을 만들 수 있습니다.

    [ pyautogui 라이브러리 도움말 ]

     

    pyautogui 함수

    • position(): 현재 마우스 위치
    • move(100, 200): 윈도우 화면 기준 X좌표 100, Y좌표 200으로 마우스 이동
    • click(): 마우스 위치에서 좌클릭
    • click(button='right'): 마우스 위치에서 우클릭
    • click(100, 200): 윈도우 화면 기준 X좌표 100, Y좌표 200으로 마우스 좌클릭
    • click(x=100, y=200, button='right'): 윈도우 화면 기준 X좌표 100, Y좌표 200으로 마우스 우클릭
    • doubleClick(): 마우스 더블클릭
    • dragTo(100, 200): 현재 위치에서 X좌표 100, Y좌표 200으로 드래그
    • press('f5'): 키보드의 F5 누름
    • typewrite('ngmsoftware', interval=1): ngmsoftware 텍스트를 1초 간격으로 쓰기
    • hotkey('ctrl', 'c'): 콘트롤+C (복사), 콘트롤+V (붙여넣기), 콘트롤+A (전체선택)
    • sleep(1): 1초 지연

     

    위는 자주 사용하는 함수들입니다. 좀 더 디테일하게 작업하려면 mouse, keyboard 기능을 추가해서 사용할 수 있습니다. 우선, Visual Studio Code에서 터미널을 열어주세요. 그리고, 아래와 같이 커멘드를 입력해서 pyautogui 패키지를 설치 해줍니다.

    pip install pyautogui

    bG5ZiV3.png

     

     

    마우스와 키보드 패키지도 같이 설치 해주세요.

    pip install mouse
    pip install keyboard

    aX0Nrv4.png

     

     

    아래와 같이 코드를 작성하고, 실행 해보세요. 엔터를 누르면 출력창에 현재 마우스 위치를 표시해줍니다. q를 누르면 프로그램이 종료됩니다.

    # 현재 마우스의 위치를 출력하는 매크로 프로그램
    import pyautogui
    import keyboard
    import time
    
    while 1:
        position = pyautogui.position()
        if keyboard.is_pressed('enter'):
            print(position)
            time.sleep(0.1)
        elif keyboard.is_pressed('q'):
            break

    Ug3uLpX.png

     

     

    이제 간단한 광클릭 마우스 매크로를 제작해보도록 하겠습니다. 위에 입력한 코드를 모두 삭제하고, 아래 코드를 붙여넣기 하세요.

    # 광클릭 매크로 프로그램
    import pyautogui
    import keyboard
    import time
    
    while 1:
        if keyboard.is_pressed('q'):
            break
    
        pyautogui.click(x=200,y=200)
        time.sleep(1)
        pyautogui.click(x=300,y=300, button='right')
        time.sleep(1)

     

    이 매크로 프로그램은 윈도우 화면의 200, 200 위치에서 좌클릭하고, 1초 뒤 300, 300 위치에서 우클릭합니다. 그리고, 또 1초 뒤 좌클릭하는데요. 이걸 무한 반복합니다.

    ※ 매크로를 중지하려면 키보드에서 q를 꾹~ 누르고 있어야 합니다.

     

     

    이번에는 진짜 광클릭 매크로를 만들어 볼께요. 여러분들도 코드를 어떻게 수정하면 광클릭 매크로 프로그램이 될지 한번 생각 해보세요. 아래 코딩과 같이 클릭 함수 하나만 놔두고 모두 삭제하면 됩니다. 광클릭은 매우 빠른 속도로 특정 버튼을 클릭해야 하는데요. time.sleep함수가 있으면 그만큼 딜레이가 발생합니다. sleep 함수의 인자로 1을 넣어주면 1초동안 지연이 발생합니다. 0.1을 입력하면 0.1초입니다.

    # 광클릭 매크로 프로그램
    import pyautogui
    import keyboard
    import time
    
    while 1:
        if keyboard.is_pressed('q'):
            break
    
        pyautogui.click(x=200,y=200)

     

     

    이번에는 키보드 입력 매크로를 만들어 볼까요? 아래 코드는 3초마다 F5키를 눌러서 웹브라우저를 새로고침하는 매크로 프로그램입니다.

    #3초마다 F5버튼을 눌러서 웹브라우저 새로고침 하기
    import pyautogui
    import time
    
    while 1:
        pyautogui.press('f5')
        time.sleep(3)

     

     

    매크로를 실행하고, 웹브라우저를 맨 앞으로 오도록 활성화 시키세요. 아래 동영상처럼 3초마다 새로고침하는걸 확인할 수 있습니다.

     

     

    일반적으로 선착순 매크로나 예약, 예매와 같은 매크로 프로그램을 만들 때 보통 새로고침하면서 클릭하게 됩니다. 아마도, 새글이 올라오는지 탐지해서 클릭해야 성공확률이 높아질테니까요. 하지만, 너무 빠르게 새로고침하면서 트레픽을 유발하면 서버에 부담을줘서 문제가 될수도 있습니다. 그래서, 대부분은 서버가 오픈되는 시간에 맞춰서 잠깐씩 돌리는 용도로 사용합니다. 몇시간이고 계속 켜둘 이유는 없으니까요^^

     

    이외에도 모바일 게임이나 간단한 게임등에서 매크로 프로그램을 사용하면 다른 일 또는 업무에 집중할 수 있는 시간을 만들어낼 수 있습니다. 오늘 알아본 내용만으로는 매크로 프로그램이라고 부르기엔 많이 부족합니다. 해당 게임에 자체적으로 소프트키 방지가 적용되어 있거나 파이썬 코드로 실행되는 프로그램을 감지할수도 있습니다. 가능하면 문제가 될만한 곳에 매크로 프로그램을 사용하지 않아야 합니다. 업무 용도로만 사용한다면 정말 많은 시간적인 혜택을 받을 수 있습니다.

     

    엔지엠 매크로와 같은 전문적인 RPA(Robotic Process Automation) 프로그램을 사용한다면 코딩을 모르더라도 누구나 쉽게 업무 자동화 매크로 프로그램을 제작할 수 있습니다. 자동화 프로그램에 대한 요구는 정말 많습니다. 대표적으로 크몽이나 숨고에만 가보더라도 간단한 프로그램 제작 의뢰가 넘쳐납니다. 익숙해지면 몇시간만에 30만원 이상 벌 수 있는 고급 기술인데요. 꼭 엔지엠 매크로가 아니더라도 파이썬을 배워서 일감을 받아오고, 수익을 낼 수 있습니다. 엔지엠 매크로는 전문 개발 도구라서 내가 만든 코드를 암호화해서 숨기거나 사용 기간에 제한을 둘수도 있습니다. 어떤 방법을 사용하더라도 요즘처럼 어려운 시기에 특별한 코딩 기술 없이 부수입을 만들 수 있다는게 큰 메리트가 아닐까 생각되네요^^

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.