창 제목을 지정하고 이 영역만 정기적으로 저장합니다.
의욕적으로 좌절하는 이유는 주로 다음과 같은 두 가지가 있다.
python이 없는 컴퓨터에서 사용하고 싶어서 구축해 봤어요.
Releases · khsk/Python-App-Capture
환경 확인
화면 포착의 어려움
Python으로 잡으려면 대부분 ImageGrab일 거예요.나는 내가grab()에 도착할 수 있다고 생각한다.
그리고 전체 화면이나xy(계산)를 줘야 한다는 걸 알면 실망하지 않을까요.
더 열심히 조사하면 이번 Selenium,pywinauto,winxpgui 등은 자동화의 범주가 되어 응용 프로그램 시작 → 프로그램 같은 것을 포착하는 데 걸리고 사용자가 조작하는 것을 간단하게 대상으로 하는 보도를 찾기 어렵다.
그곳에서 아무리 노력해도 그 소음에 져서 포기했다.
원하는 동작으로 프로세스 이름 (~.exe) 을 지정하면 이 창 정보를 얻을 수 있습니다. 범위에 지정된 창 크기 등에 사용됩니다.
아니면 [Alt]+[Print Screen].
그런데 요즘
Python에서 창 핸들 열거(Windows) - Qiita
발견, 찾은 일에 가까워진 것 같은데, win32api, C++?이런 분야에서 기억하는 게 많을 것 같은데.. 어려워 보이는데.. 망설였지만 바로 이것을 조사해 보겠습니다.
Python으로 창 제목에서 핸들 가져오기!
찾아라, 과정이 아니라 제목 이름이 허용된다, 이렇게 추상화하면 자신도 만질 수 있다!나는 분발했다.
내용의 코드도 읽을 수 있는 수준은 매우 간단하다.
지정한 창의 코드 저장
import cv2
import pyws as m
import numpy as np
import winxpgui
try :
handle = m.getid('ウィンドウ名(一部でも化)')
rect = winxpgui.GetWindowRect(handle)
except IndexError as e:
return
img = ImageGrab.grab(rect)
img = np.asarray(img)
img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
cv2.imwrite('保存先/' + datetime.now().strftime("%Y%m%d%H%M%S") + '.jpg', img)
간단하게 완성했습니다!
핸들 스냅에서 참조pyws 이미지 식별winxpgui.GetWindowRect
창 전체, 화면의 좌표winxpgui.GetClientRect
프로그램의 묘사 영역의 크기를 되돌려주는 것 같아서pyws에서 winxpgui.GetWindowRect
, 크기winxpgui.GetClientRect
를 사용하여 포착의 시작점을 계산합니다.
아마도 전체 화면으로 진행할 수 있지만, 이곳의 환경에서는
창을 포함하는 왼쪽 상단에서 묘사 영역의 크기만 포착
창의 오른쪽 아래에 없습니다.winxpgui.GetClientRect
절대 좌표를 몰라요.
프로그램의 묘사 부분만 얻기 위해서는 창 부분의 여분을 수동으로 포함해야 한다고 생각합니다. 맛이 없기 때문에 창을 포함한 전체를 얻기로 했습니다.
Qt화
얻었기 때문에 이후while 순환을 조립했습니다. 만약에 수동으로 간격과 제목과 원본 코드를 엉망진창으로 만들면 자신의 용도는 이루어지지 않지만 매번 끝나고 시작하는 것은 번거롭습니다. 순환의 시작에 변수의 스위치(if continue)를 넣고 응용 프로그램의 단추로 열고 닫으면 쉽습니다. Qt를 터치해 보십시오.
그 결과 while 순환과 변수 스위치로 만들고 싶은 것을 신호 프로그래밍과 QTimer
이라는 아주 좋은 것으로 썼고, 코드를 만들고 싶은 부분마다 형태를 만들 수 있어서 좋은 일이 끊이지 않았다.
화면을 옮기지 않는 수준이지만 Qt의 라이브러리 규모로 볼 때 생각보다 간단하다(거의 복제)
입력란을 만들면 지난번에 끝났을 때의 값을 복원하지 않으면 원본 개작보다 더 많은 시간이 걸리기 때문에 설정 파일의 읽기와 쓰기를 천천히 기억합니다.
…Qt5…?
쓸모가 있습니까?
안돼.
키쿠 등 무료 앱이 더 많기 때문이다.
그러나 저장이 다른 처리로 바뀌었기 때문에
import cv2
import pyws as m
import numpy as np
import winxpgui
try :
handle = m.getid('ウィンドウ名(一部でも化)')
rect = winxpgui.GetWindowRect(handle)
except IndexError as e:
return
img = ImageGrab.grab(rect)
img = np.asarray(img)
img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
cv2.imwrite('保存先/' + datetime.now().strftime("%Y%m%d%H%M%S") + '.jpg', img)
간단하게 완성했습니다!핸들 스냅에서 참조pyws 이미지 식별
winxpgui.GetWindowRect
창 전체, 화면의 좌표winxpgui.GetClientRect
프로그램의 묘사 영역의 크기를 되돌려주는 것 같아서pyws에서 winxpgui.GetWindowRect
, 크기winxpgui.GetClientRect
를 사용하여 포착의 시작점을 계산합니다.아마도 전체 화면으로 진행할 수 있지만, 이곳의 환경에서는
창을 포함하는 왼쪽 상단에서 묘사 영역의 크기만 포착
창의 오른쪽 아래에 없습니다.
winxpgui.GetClientRect
절대 좌표를 몰라요.프로그램의 묘사 부분만 얻기 위해서는 창 부분의 여분을 수동으로 포함해야 한다고 생각합니다. 맛이 없기 때문에 창을 포함한 전체를 얻기로 했습니다.
Qt화
얻었기 때문에 이후while 순환을 조립했습니다. 만약에 수동으로 간격과 제목과 원본 코드를 엉망진창으로 만들면 자신의 용도는 이루어지지 않지만 매번 끝나고 시작하는 것은 번거롭습니다. 순환의 시작에 변수의 스위치(if continue)를 넣고 응용 프로그램의 단추로 열고 닫으면 쉽습니다. Qt를 터치해 보십시오.
그 결과 while 순환과 변수 스위치로 만들고 싶은 것을 신호 프로그래밍과 QTimer
이라는 아주 좋은 것으로 썼고, 코드를 만들고 싶은 부분마다 형태를 만들 수 있어서 좋은 일이 끊이지 않았다.
화면을 옮기지 않는 수준이지만 Qt의 라이브러리 규모로 볼 때 생각보다 간단하다(거의 복제)
입력란을 만들면 지난번에 끝났을 때의 값을 복원하지 않으면 원본 개작보다 더 많은 시간이 걸리기 때문에 설정 파일의 읽기와 쓰기를 천천히 기억합니다.
…Qt5…?
쓸모가 있습니까?
안돼.
키쿠 등 무료 앱이 더 많기 때문이다.
그러나 저장이 다른 처리로 바뀌었기 때문에
안돼.
키쿠 등 무료 앱이 더 많기 때문이다.
그러나 저장이 다른 처리로 바뀌었기 때문에
참고 자료
PyQt의 Connect에서 매개 변수가 있는 함수를 전달하는 방법 - drilldripper's blog
너무 좋아, 살았어.실례에 맡기면 신호를 직접 사용할 수 있는 값입니다.
PyQt로 시작하는 GUI 프로그래밍
코드, 화면, 적당한 장르(라면 타이머) 덕분에 초보자도 유용할 수 있다.대단해요.
Reference
이 문제에 관하여(창 제목을 지정하고 이 영역만 정기적으로 저장합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/khsk/items/ef73d9520874db2767de텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)