미러링의 경우 상황에 따라 다양하게 사용할 수 있습니다.

참고로 삼성폰을 사용하는 경우 삼성 Flow를 사용하면 별다른 설정없이 바로 사용 가능합니다.

자세한 설정 방법은 삼성 Flow 페이지를 참고 하시면 쉽게 작업 가능합니다. 

 

www.samsungsvc.co.kr/online/faqView.do?faqId=KNOW0000042223#:~:text=%EC%95%B1%20%EC%8B%A4%ED%96%89%20%ED%9B%84%20PC%EC%9D%98,%EC%8B%9C%EC%9E%91%5D%EB%B2%84%ED%8A%BC%EC%9D%84%20%EC%84%A0%ED%83%9D%ED%95%98%EC%84%B8%EC%9A%94.&text=PC%EC%9D%98%20Samsung%20Flow%EC%97%90%EC%84%9C%20%EA%B2%80%EC%83%89%EB%90%9C%20%EB%94%94%EB%B0%94%EC%9D%B4%EC%8A%A4,%ED%95%A0%20%EB%94%94%EB%B0%94%EC%9D%B4%EC%8A%A4%EB%A5%BC%20%EC%84%A0%ED%83%9D%ED%95%98%EC%84%B8%EC%9A%94.&text=PC%EC%9D%98%20Samsung%20Flow%EC%97%90%EC%84%9C%20%ED%8E%98%EC%96%B4%EB%A7%81%20%EB%A9%94%EC%8B%9C%EC%A7%80%EA%B0%80,%5B%EC%98%88%5D%EB%A5%BC%20%EC%84%A0%ED%83%9D%ED%95%98%EC%84%B8%EC%9A%94.

 

홈페이지 < 삼성전자서비스

삼성 플로우, 삼성노트북 소프트웨어, 윈도우10 ver1809, Windows10 RS5, 레드스톤5, 삼성노트북 Pen S, 삼성노트북펜

www.samsungsvc.co.kr

만약 와이파이 설정문제가 있거나 공공장소에서 사용 등 여러가지 이유로 USB 를 통한 연결이 필요한 경우 다음과 같이 진행하면 됩니다.

 

  • 먼저 안드로이드 폰의 설정을 개발자 모드로 변경해야 합니다.

1. 설정에 진입합니다.

 

 

2. 휴대전화 정보에 진입합니다. - 폰 마다 조금씩 차이가 있을 수 있습니다.

3. 소프트웨어 정보를 선택합니다.

 

 

4. 빌드번호를 6~7회 터치 합니다. 그럼 개발자 모드가 켜집니다.

5. 이제 설정 메뉴 제일 하단으로 이동하면 개발자 옵션이 켜진것을 확인 할 수 있습니다. 개발자 옵션으로 진입합니다.

6. USB 디버깅 옵션을 On 합니다.

7. 폰을 컴퓨터와 USB로 연결합니다.

 

 

  • ADB 디버깅 설정을 진행합니다. 자세한 설치 방법은 하단 링크를 참조하세요.

smart-west.tistory.com/59

 

[ Appium ] 설치 / 세팅 하기 - Step3 - Android Studio

Appium 설치를 위한 3번째로 안드로이드 스튜디오를 설치 합니다. 1단계와 2단계단계는 다음 내용을 확인 하세요. smart-west.tistory.com/56 [ Appium ] 설치 / 세팅 하기 - Step1 JAVA 설정 Appium을 사용하기..

smart-west.tistory.com

 

 

  • 이제 USB미러링을 위해 scrcpy를 설정합니다.

1. 하단 사이트로 이동합니다.

github.com/Genymobile/scrcpy/releases/tag/v1.2

 

Release scrcpy v1.2 · Genymobile/scrcpy

Some popular webpages seem to point to this (very) old version. Use the latest version instead. scrcpy v1.2 Changes since v1.1: Increase connection attempts (fix issues over TCP/IP) Fix process ha...

github.com

2. 파일을 다운로드 받아 압축을 해제 합니다

 

 

 

3. cmd 모드에서 압축해제한 폴더로 이동한 후 scrcpy.exe를 실행합니다.

 

4. 미러링 된 화면이 컴퓨터에 표시 됩니다. 단순히 보여지는 것이 아니라 마우스 동작을 통해서 실제 동작도 가능합니다.

 

기본적인 xml의 읽기 쪽 관련 항목은 다음 내용을 참고해주세요.

smart-west.tistory.com/75

 

[ Pthon ] xml 파일 읽기 / 분석 / 출력 하기

파이썬에서 xml 처리를 위해서는 ElementTree를 활용합니다. import xml.etree.ElementTree as elemTree 먼저 xml 데이터 인지 파일인지 확인이 필요합니다. 파일에서 읽어 오는 단계인 경우 아래와 같이 작업하

smart-west.tistory.com

 

먼저 불러온 파일은 다음 방식으로 편집이 가능합니다.

 

for nnn in root.iter("태그")
	new_nnn = int(nnn.text)+1
    nnn.text = str(new_nnn)
    nnn.attrib["속성"] = "aaa"
    nnn.set("속성" , "aaa")

 

태그 삭제를 위해서는 다음과 같이 진행 합니다.

root.remove("태그")

 

 

파일로 쓰는 방법은 다음과 같습니다.

 

doc.write("write_value.xml" , encoding = "utf-8" , xml_declaration= True)

 

 

 

 

 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받을 수 있습니다.

 

 

 

유비 소프트에서 해피 홀리데이 선물을 제공하고 있습니다. 링크는 실제 다운로드가 가능한 시점에 활성화됩니다. 매일 링크가 변경되며 기존 링크는 만료 되므로 오늘의 무료를 잘 확인해야 합니다. 링크 변경시점이 한국 시간이 아닌점은 참고하여 잘 다운로드 해야 합니다.

연말에 한번더 진행 예정인듯하네요

 


에픽스토어 에서도 무료 게임을 매일 배포하고 있습니다. 에픽 스토어는 동일 링크로 매일 무료 업데이트가 진행 되므로 매일 해당 링크를 클릭해서 게임을 다운로드 받을 수 있습니다.

 

Get A Free Game Every Week | Epic Games Store

Download a free game or join a free-to-play game community today!

www.epicgames.com

 

무료 게임을 받으면 11000원 쿠폰을 제공합니다.(쿠폰 적용 가격 15000원) 할인 가격이 15000원 게임을 선택하면 쿠폰 적용 후 4000원에 구입 가능합니다. 1월 8일까지 사용 가능하며, 쿠폰 사용시 쿠폰이 다시 생깁니다.

 

 

 

 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받을 수 있습니다.

 

파이썬 사용 도중 다음과 같이 오류가 나타나는 경우가 있습니다. 

첫번째는 request 입니다.

  • 오류 메세지 
    • PythonShellError: ModuleNotFoundError: No module named 'requests'

 

가장 쉬운 해결 방법은 파이썬에 requests 가 설치되어 있는지 확인 입니다.

cmd 창에서 다음과 같이 입력 합니다.

pip install requests

 

해당 작업 후 많은? 경우 해결 됩니다. 하지만 이걸로 해결되지 않는다면 git 소스로 이동합니다.

 

github.com/psf/requests

 

psf/requests

A simple, yet elegant HTTP library. Contribute to psf/requests development by creating an account on GitHub.

github.com

 

다운로드에서 zip 파일로 받아서 압축을 해제 합니다.

 

그후 해당 폴더로 이동 후 다음 명령어로 설치 합니다.

python setup.py install

 

이렇게 직접 설치하면 대부분 해결됩니다.

 

 


유사한 이슈로 아래 오류의 경우 설치 명령어와 Git 소스는 다음과 같습니다.

 

  • 오류메세지
    •  "ModuleNotFoundError: No module named 'PIL'\r\ 
  • 설치 명령어 
pip install Pillow

 

 

francescortiz/image

Django application that provides cropping, resizing, thumbnailing, overlays, tint and mask for images and videos with the ability to set the center of attention in order to have automatic perfect c...

github.com


 

 

Appium 오류 관련

  • 오류 메세지
    • "ModuleNotFoundError: No module named 'appium'\r\n",
  • 설치 명령어
pip install Appium-Python-Client

 

 

Appium-Python-Client

Python client for Appium

pypi.org

 

화면상의 이미지를 찾는 방법은 다음과 같습니다. 찾을 이미지를 미리 준비 하셨다면 다음 3줄로 이미지를 찾는 작업은 완료 됩니다.

import pyautogui 
ImageFile = "E:\\경로\\BB.png"
find_img = pyautogui.locateOnScreen(ImageFile)

 

 

 

 

해당 위치로 마우스를 이동하는 코드는 다음과 같습니다.

 

pyautogui.moveTo(find_img)

 

만약 해당 위치를 클릭하는 방법은 다음과 같습니다.

pyautogui.click(find_img)

 

조금 천천히 클릭하길 원하신다면 뒤에 옵션 값을 넣어주시면 됩니다.

pyautogui.click(find_img , duration=0.1 )

 

만약 find_img를 그냥 프린트 하게 되면 다음과 같이 값이 나타납니다. (이미지와 pc환경에 따라 값은 조금씩 달라집니다.)

 

값을 하나씩 가져와서 표시 하려면 아래와 같이 하시면 됩니다.

print(find_img[0])
print(find_img[1])
print(find_img[2])
print(find_img[3])

 

프로그램을 실행하고 핸들을 구해서 종료하는 기본 패턴입니다.

 

가장 간단한 프로그램 중 하나인 메모장을 실행하고, 1초 대기하고, 메모장의 핸들을 구하고, 메모장을 강제 종료하는 코드는 다음과 같습니다.

import pyautogui
import win32gui
import win32con
import subprocess

subprocess.Popen('notepad.exe')
pyautogui.sleep(1)
hwnd = win32gui.FindWindow(None, "제목 없음 - Windows 메모장")
win32gui.PostMessage(hwnd, win32con.WM_CLOSE, 0, 0)

 

 

 

 

이제 메모장을 실행하여 메모장편집창의 크기를 구하는 방법은 다음과 같습니다. 각각의 핸들과 자식개체의 핸들을 구해서 크기값을 표시해줍니다.

Edit 개체의 크기를 구하는 방식으로 적용 되었으며 크기를 프린트 하도록 설정 하였습니다.

 

 

import pyautogui
import win32gui
import win32con
import subprocess

subprocess.Popen('notepad.exe')
pyautogui.sleep(1)
hwnd = win32gui.FindWindow("Notepad", "제목 없음 - Windows 메모장")
print(hwnd)
old = win32gui.GetWindowText(hwnd)
print(old)

child_class = "Edit"
hwnd_A = win32gui.FindWindowEx(hwnd, 0, child_class, None)

print(hwnd_A)

rect = win32gui.GetWindowRect(hwnd_A)
x = rect[0]
y = rect[1]
w = rect[2] - x
h = rect[3] - y
print("Window %s:" % win32gui.GetWindowText(hwnd_A))
print("\tLocation: (%d, %d)" % (x, y))
print("\t    Size: (%d, %d)" % (w, h))

 

현재 자식개체의 클래스를 기반으로 동작 하도록 설정하였으므로 Mousemove를 통해 현재 값에 대한 정상적인 동작 확인 가능여부를 확인 할 수 있습니다.

 

우선 파이썬에서  pyautogui를 설치해 줘야 합니다. 

pip install pyautogui 를 입력하면 다음과 같이 진행됩니다.

 

성공적으로 설치가 완료 되었다면 이제 GUI 기반 동작이 가능합니다.

 

  • 모니터 크기 값 구하기
import pyautogui 
M_size = pyautogui.size()
print(M_size)

결과 값 : 

Size(width=1920, height=1080)

참고 : 모니터가 2개여도 1번 모니터 기준 값이 나타납니다.

 

만약 하나씩 값이 필요한 경우에는 배열 방식으로 적어주시면 됩니다.

import pyautogui 
M_size = pyautogui.size()
print(M_size[0])
print(M_size[1])

 

  • 마우스위치 값 구하기
M_pos = pyautogui.position()
print(M_pos[0])
print(M_pos[1])

 

결과 값 : 

2번 모니터에 마우스가 위치하면 해당 위치의 값이 숫자로 정상적으로 나타납니다.

 

 

핸들을 구하기 위해서는 추가적으로 pip로 설치해줘야 합니다.

pip install win32gui

 

핸들 값을 구해서 print 하는 함수는 다음과 같습니다. 

import win32gui
 
def EnumWindowsHandler(hwnd, extra):
	wintext = win32gui.GetWindowText(hwnd)
	print (hwnd, wintext)
 
if __name__ == '__main__':
	win32gui.EnumWindows(EnumWindowsHandler, None)

 

해당 코드가 동작하면 핸들리스트가 나타납니다. ( PC 환경 따라 해당 리스트는 차이가 있습니다.)

 

 

추가적으로 마우스에 대한 정보를 추출해 주는 파이썬 툴은 다음과 같습니다.

import pyautogui
pyautogui.mouseInfo()

해당 프로그램을 사용하면 아래 대화상자가 나타나며 실시간으로 마우스가 위치한 위치/ 색상값을 보여 줍니다. 자동화시 유용하게 사용 가능합니다.

 

화면 캡쳐는 다음 코드를 이용하면 됩니다.(1번 모니터만 기본으로 캡쳐 됩니다.)

img_capture = pyautogui.screenshot()
img_capture.save("ssssss.png")

+ Recent posts