본문 바로가기

Python/파이썬 프로젝트

[모듈 2-12] 파이썬 매크로 기본 함수와 다양한 활용 예제 코드

 

1. 파이썬 매크로 기본 함수 배우기 - 메모장에 마음대로 낙서하기

 

### intro.
## Date : 2020. 11. 26
## Editer : 성원경 선생님 / 경기기계공업고등학교

### 1. 파이썬 기본 매크로 함수 사용하기

import pyautogui
import time
from pyperclip import copy

# 마우스 위치 알아내기 반복문
while(0) :
    print(pyautogui.position())
    time.sleep(0.1)

# 마우스 움직이기
pyautogui.moveTo(20, 1058, 1)
pyautogui.click()
time.sleep(0.5)
pyautogui.typewrite(['space'])
time.sleep(0.5)
pyautogui.typewrite(['a', 'p', 'a','h'])
pyautogui.typewrite(['enter'])
time.sleep(0.5)
pyautogui.typewrite('Hello Python Macro~!')
pyautogui.typewrite(['enter'])
copy('나는 원킹이야')

pyautogui.hotkey("ctrl", 'v')

 

 

 

 

 

 

2. 파이썬 매크로 활용 예제  - 매크로로 즐기는 두더지 게임~!

 

 

두더지 게임 다운로드 받아오기.

 

[꿀멘토]두더지게임

초등저학년부터 성인까지 마우스 연습에 좋아요!

edcoach.tistory.com

 

 

### intro.
## Date : 2020. 11. 26
## Editer : 성원경 선생님 / 경기기계공업고등학교

### 2. 두더지 게임 메크로 돌리기

import pyautogui
from datetime import datetime
from datetime import timedelta

macro = True
start_time = datetime.now()

while(macro) :
    if datetime.now() - start_time > timedelta(seconds=18) :
        macro = False

    dudu = pyautogui.locateCenterOnScreen('dudu.png')
    print(dudu)
    pyautogui.click(dudu)

    print('두더지 게임 매크로를 종료합니다.')

 

 

 

 

 

3. 파이썬 매크로 활용 예제  - 알람시간에 맞춰 유튜브 매크로 재생하기

 

 

디지털 시계 원본 소스 코드

oceancoding.blogspot.com/2019/04/blog-post.html

 

파이썬 예제 (디지털 시계)

코딩교육을 전문으로 하는 부산 강서구 명지동에 위치한 학원입니다.

oceancoding.blogspot.com

 

 

### intro.
## Date : 2020. 11. 26
## Editer : 성원경 선생님 / 경기기계공업고등학교

### 3. 유튜브 매크로 알람 시계

### 디지털 시계 코드

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from threading import Timer
import time
import pyautogui

QApplication.setAttribute(Qt.AA_EnableHighDpiScaling, True)

macro = True

class CWidget(QWidget):

    def __init__(self):
        super().__init__()
        self.year = QLCDNumber(self)
        self.month = QLCDNumber(self)
        self.day = QLCDNumber(self)
        self.hour = QLCDNumber(self)
        self.min = QLCDNumber(self)
        self.sec = QLCDNumber(self)


        # LCD 글자색 변경
        pal = QPalette()
        pal.setColor(QPalette.WindowText, QColor(255,0,0))
        self.sec.setPalette(pal)

        # # LCD 배경색 변경
        # pal = QPalette()
        # pal.setColor(QPalette.Background, QColor(255,0,0))
        # self.min.setPalette(pal)
        # self.min.setAutoFillBackground(True)

        self.initUI()

    def initUI(self):
        hbox1 = QHBoxLayout()
        hbox1.addWidget(self.year)
        hbox1.addWidget(self.month)
        hbox1.addWidget(self.day)

        hbox2 = QHBoxLayout()
        hbox2.addWidget(self.hour)
        hbox2.addWidget(self.min)
        hbox2.addWidget(self.sec)


        vbox = QVBoxLayout()
        vbox.addLayout(hbox1)
        vbox.addLayout(hbox2)

        self.setLayout(vbox)

        self.setWindowTitle('원킹의 유튜브 알람 시계')
        self.setGeometry(200, 200, 400, 200)

        self.showtime()

    def showtime(self):
        global macro
        # 1970년 1월 1일 0시 0분 0초 부터 현재까지 경과시간 (초단위)
        t = time.time()
        # 한국 시간 얻기
        kor = time.localtime(t)
        # LCD 표시
        self.year.display(kor.tm_year)
        self.month.display(kor.tm_mon)
        self.day.display(kor.tm_mday)
        self.hour.display(kor.tm_hour)
        self.min.display(kor.tm_min)
        self.sec.display(kor.tm_sec)

        # 특정 시간에 매크로 시작
        if kor.tm_hour == 14 and kor.tm_min == 25:
            if macro == True :
                pyautogui.typewrite(["WIN"])
                time.sleep(0.5)
                pyautogui.typewrite('chrome')
                time.sleep(0.5)
                pyautogui.typewrite(['enter'])
                time.sleep(0.5)
                #pyautogui.typewrite("https://youtu.be/3iM_06QeZi8")
                pyperclip.copy("https://youtu.be/3iM_06QeZi8")
                pyautogui.hotkey("ctrl", "V")
                time.sleep(0.5)
                pyautogui.typewrite(["enter"])
                time.sleep(0.5)
                pyautogui.typewrite(["F11"])
                time.sleep(0.5)
                pyautogui.typewrite(["f"])

                macro = False

        # 자정에 매크로 초기화
        if kor.tm_hour == 0 and kor.tm_min == 0 and kor.tm_hour == 0 and kor.tm_sec == 0 :
            macro = True


        # 타이머 설정  (1초마다, 콜백함수)
        timer = Timer(1, self.showtime)
        timer.start()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = CWidget()
    w.show()
    sys.exit(app.exec_())