본문 바로가기
[파이썬] pywin32를 이용해 윈도우 화면에 그리기 윈도우 화면에 강조를 위한 그리기 방법입니다. requirements pip install pywin32 draw.py import win32gui, win32api class draw: def __init__(self): hwnd = win32gui.GetDesktopWindow() self.hdc = win32gui.GetDC(hwnd) def rect(self, x, y, w, h, color=False): # color = (255,0,0) int type color = win32api.RGB(0,255,0) if not color else win32api.RGB(color[0], color[1], color[2]) for i in range(x, x + w): win32gui.SetPixel(s.. 2022. 6. 2.
[파이썬] socket.io를 이용한 callback 함수 socket.io란? 브라우저에서 websocket 호환이 안되는 경우, 적절한 통신 방법으로 전환해 통신하는 라이브러리 입니다. 이제 대부분의 브라우저가 websocket을 사용할 수 있게 되었지만, 다양한 기능과 안정성으로 사용을 추천합니다. callback 함수란? 특정 함수의 실행이 마무리 되면 호출하는 함수입니다. 통신에서 꼭 필요한 기능입니다. Requirements pip install aiohttp python-socketio 서버를 구동하기 위한 다양한 옵션이 있었는데, 저는 aiohttp를 사용했습니다. Server.py from aiohttp import web import socketio import os import time # 정적 호스팅 서버를 이용하기 위한 cors 옵션 추가.. 2022. 6. 1.
[파이썬] 화상 키보드 비활성으로 클릭하기 [파이썬] 비활성 키 입력 코드 공유 안녕하세요? 만들오 입니다. 최근 게임 매크로에 비활성 키 입력을 사용하고 있습니다. 비활성 키 입력이란? 창이 다른 화면에 가려져 있어도 입력하는 방식 이 방식으로 바로 게임창으로 키 입 mandloh.tistory.com ※ 위의 글에서 수정한 버전입니다. ※ 일부 게임가드는 이 기능을 사용할 수 없도록 막고 있습니다.(참고) 비활성 클릭이란? 창을 마우스로 선택하지 않아도, 창이 다른창에 가려져 있어도 클릭할 수 있는 방식 Requirements 1. 파이썬 라이브러리 설치 pip install pywin32 2. 화상 키보드 설정 좌표를 입력하는 방식이기 때문에, 크기와 레이아웃이 제 설정과 같아야 합니다. 다음 순서에 따라 설정을 완료하세요. ① win + .. 2022. 5. 29.
[파이썬] 윈도우 화면 캡처 (with mss) 윈도우 화면 캡처란? 관심영역(ROI : Region of interesting)의 화면을 캡쳐합니다. 유용하게 사용하고 있는 윈도우 캡처 도구의 창 캡처와 동일한 방식입니다. 파이썬 라이브러리 설치 pip install PySimpleGUI opencv-python mss pywin32 위 명령어로 라이브러리를 설치합니다. 파이썬 코드 import PySimpleGUI as sg import win32gui import win32com.client import cv2 import numpy as np import mss # 접을 수 있는 행 추가 함수 def add_row(layout, key): return [sg.pin(sg.Column(layout, key=key, visible=False))] .. 2022. 3. 10.
[파이썬] 소켓 통신 예제 파이썬에 내장되어있는 socket의 서버와 클라이언트 예제입니다. 1개의 서버에 다수의 클라이언트가 접속할 수 있습니다. 서버 import socket server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.bind(('localhost', 12345)) while True: server_socket.listen() client_socket, addr = server_socket.accept() data = client_socket.recv(65535) print("{}, {}".format(addr, data)) 클라이언트 import socket sock = socket.socket(socket.AF_INET, s.. 2022. 2. 15.
[파이썬] 1대의 아두이노와 여러앱과의 통신(작성중) 시리얼 통신은 1:1이 원칙입니다. 즉, 1대의 아두이노와 1개의 앱만 연결할 수 있습니다. 아두이노는 1개인데 여러개의 앱과 통신할 수 없을까? 하는 고민에 관한 글 입니다. 아래와 같이 시리얼 통신이 연결된 상태에서, 같은 포트로 연결을 시도하면 에러가 납니다. Python 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:26:21) [MSC v.1929 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import serial >>> ser = serial.Serial("COM3", 9600) >>> ser.is_open True >>> se.. 2022. 2. 15.