파이썬으로 윈도우의 타이틀에서 폭속으로 위치를 취득 【Windows】
왜 썼는지
파이썬으로 마우스 클릭하고 싶다! 앱이 실행 중입니까? 시작하면 어디에 있습니까?
피우 토식 이나 PyWinAuto , Windows App Driver
개인적으로 최적이라고 생각한 대답을 찾았으므로 행복을 공유하려고 했습니다.
모두 자동화하고 사보합시다.
기존 라이브러리의 미숙한 곳
이러한 단점으로부터, 기본적으로는 PyAutoGUI를 사용해, 할 수 없는 부분의 윈도우 조작계는 독자적인 구현으로서 보충하는 사용법으로 했습니다.
독자 구현한 부분은 그중 풀리크 하려고 생각하고 있습니다.
이러한 단점으로부터, 기본적으로는 PyAutoGUI를 사용해, 할 수 없는 부분의 윈도우 조작계는 독자적인 구현으로서 보충하는 사용법으로 했습니다.
독자 구현한 부분은 그중 풀리크 하려고 생각하고 있습니다.
피우 토식/Sikulix/Lackey
HowTo 에 게재되고 있는 어플리케이션의 기동 방법으로 기동할 수 없는 것이 있다.
판단이 느립니다.
줄거리
파이썬에서 Windows API를 사용하여 창의 위치를 반환하는 함수를 만들었습니다.
창 제목을 기반으로 Top, Left, Bottom, Right 수치를 얻을 수 있습니다.
수치는 화면의 좌상구석을 원점으로 한 양수입니다.
코드
갑자기 코드입니다.def GetWindowRectFromName(TargetWindowTitle:str)-> tuple:
TargetWindowHandle = ctypes.windll.user32.FindWindowW(0, TargetWindowTitle)
Rectangle = ctypes.wintypes.RECT()
ctypes.windll.user32.GetWindowRect(TargetWindowHandle, ctypes.pointer(Rectangle))
return (Rectangle.left, Rectangle.top, Rectangle.right, Rectangle.bottom)
if __name__ == "__main__":
print(GetWindowRectFromName('CALC'))
pass
동작
인수는, 일본어라도 뭐든지 좋지만, 윈도우의 타이틀이 그 만마 들어갑니다.
FindWindowW 을 사용하여 창 핸들을 가져옵니다.
다음에, 이 핸들이 나타내는 윈도우로부터 GetWindowRect 로 RECT 구조체 에 위치를 취득합니다.
이 RECT의 내용으로 튜플을 재구축한 것을 반환값으로서 돌려줍니다.
※샘플 코드에서는 CALC
를 인수에 넣고 있습니다만, 일본어 환경에서는 電卓
라고 넣으면 OK입니다.
환경
파이썬 3.8.2 | packaged by conda-forge | (default, Apr 24 2020, 07:34:03) [MSC v.1916 64 bit (AMD64)] on win32 Windows 10 Pro 1909
참고
요약
네이티브 함수를 감싸고 있기 때문에 폭속.
Excelsior!
Reference
이 문제에 관하여(파이썬으로 윈도우의 타이틀에서 폭속으로 위치를 취득 【Windows】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ShortArrow/items/409f9695c458433d0744
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
갑자기 코드입니다.
def GetWindowRectFromName(TargetWindowTitle:str)-> tuple:
TargetWindowHandle = ctypes.windll.user32.FindWindowW(0, TargetWindowTitle)
Rectangle = ctypes.wintypes.RECT()
ctypes.windll.user32.GetWindowRect(TargetWindowHandle, ctypes.pointer(Rectangle))
return (Rectangle.left, Rectangle.top, Rectangle.right, Rectangle.bottom)
if __name__ == "__main__":
print(GetWindowRectFromName('CALC'))
pass
동작
인수는, 일본어라도 뭐든지 좋지만, 윈도우의 타이틀이 그 만마 들어갑니다.
FindWindowW 을 사용하여 창 핸들을 가져옵니다.
다음에, 이 핸들이 나타내는 윈도우로부터 GetWindowRect 로 RECT 구조체 에 위치를 취득합니다.
이 RECT의 내용으로 튜플을 재구축한 것을 반환값으로서 돌려줍니다.
※샘플 코드에서는 CALC
를 인수에 넣고 있습니다만, 일본어 환경에서는 電卓
라고 넣으면 OK입니다.
환경
파이썬 3.8.2 | packaged by conda-forge | (default, Apr 24 2020, 07:34:03) [MSC v.1916 64 bit (AMD64)] on win32 Windows 10 Pro 1909
참고
요약
네이티브 함수를 감싸고 있기 때문에 폭속.
Excelsior!
Reference
이 문제에 관하여(파이썬으로 윈도우의 타이틀에서 폭속으로 위치를 취득 【Windows】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ShortArrow/items/409f9695c458433d0744
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
파이썬 3.8.2 | packaged by conda-forge | (default, Apr 24 2020, 07:34:03) [MSC v.1916 64 bit (AMD64)] on win32 Windows 10 Pro 1909
참고
요약
네이티브 함수를 감싸고 있기 때문에 폭속.
Excelsior!
Reference
이 문제에 관하여(파이썬으로 윈도우의 타이틀에서 폭속으로 위치를 취득 【Windows】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ShortArrow/items/409f9695c458433d0744
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
네이티브 함수를 감싸고 있기 때문에 폭속.
Excelsior!
Reference
이 문제에 관하여(파이썬으로 윈도우의 타이틀에서 폭속으로 위치를 취득 【Windows】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ShortArrow/items/409f9695c458433d0744텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)