프로그래밍/python

파이썬(python) win32api로 간단한 윈도우 프로그래밍

콘파냐 2017. 8. 3. 20:39

작년과 올해 파이썬에 대한 인기가 엄청 뜨거워지고 있다. 

그도 그럴 것이 IT 쪽 분야가 아닌 다른 분야나 직종에서 기본적인 프로그래밍 스킬이 필요해지면서 그나마 쉬운 언어인 파이썬에 대한 관심이 높아졌기 때문이라고 생각한다.

특히 최근에 빅데이터나 인공지능 쪽이 부각되는 것 같은데 파이썬 하나만 가지고도 웹부터 모바일, 윈도우 프로그래밍 까지 모든 분야를 망라할 수가 있기 때문에 배워놓으면 두고 두고 써먹을 일이 많은 언어기도 하다.

아무튼 오늘은 pywin32 (Python Window Extension)라는 패키지에 대해서 소개할 것이다. pywin32는 window api 와 COM 등 에 대한 바인딩을 제공한다. 그중 win32api 모듈은 window api에 대한 바인딩을 제공하는데 오늘의 주제다.

그런데 사실 이에 대한 제대로 된 자료는 거의 없었다. 단편적인 예제 정도만 검색할 수 있는데 pywin32에 대해 문서화를 제대로 해 놓은 사이트는 없었다. 다만 대략적인 소개만 되어 있는데

python win32api 문서

그다지 친절한 설명도 아니다.

원래 win32api는 윈도우 OS에서 제공하는 함수들을 의미하는 것으로 파이썬 라이브러리 win32api는 윈도우에서 제공하는 win32api를 파이썬에서 사용할 수 있도록 래핑(wrapping)해 놓은 라이브러리라고 생각하면 된다. 따라서 따로 문서가 필요하기 보다는 window api에 대해서 어느 정도 알고 있다면 다루기 수월할 것이고 만약 모른다 하더라도 window api 함수들을 참고해서 어느정도 사용법을 유추할 수 있다. 물론 쉽진 않겠지만...

그리고 window api가 제공하는 함수는 1천여가지가 훨씬 넘어가는데 파이썬 win32api에서 제공하는 함수는 자주 사용하는 일부라고 보면 된다.

  • 파이썬 win32api 설치방법

pip install pypiwin32

애초에 오리지널 파이썬 대신 아나콘다 버전을 설치했다면 win32api는 자동으로 설치된다. 아니라면 커맨드 창에서 위 명령으로 설치해주면 될 것이다. 또는  ActiveState에서 제공하는 ActivePython을 설치해도 된다.

아무튼 파이썬을 설치하는 방법은 다양하므로 자신에게 맞는 한가지만 설치하면 된다.

여기까지 win32api가 무엇이고 어떻게 설치하는 지에 대에 살펴보았다.

이제 몇 가지 예를 살펴보도록 하자.

마우스의 위치(좌표)를 알아내기

마우스의 위치(좌표)를 지정하여 옮기기

특정 위치(좌표)의 픽셀(pixcel)의 색상 알아내기

모니터 좌표 (100,200)과 (1000,777)에 있는 픽셀의 색상을 알아냈다.

마우스 클릭과 드래그 하기

win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0,0,0,0)

win32api.mouse_event(win32con.MOUSEEVENTF_MOVE, -100,-100,0,0)

win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0,0,0,0)

차례대로 

마우슨 왼쪽 버튼 press

마우스 커서 x축으로 -100만큼, y 축으로 -100만큼 이동

마우스 왼쪽 버튼 release

win32con 모듈은 다양한 상수들이 정의된 모듈이다. con이 constant를 뜻한다.

아무튼 대략 이런 느낌으로 사용하면 된다. 이 정도만 알아도 간단한 매크로 프로그램은 만들 수 있을 것이다.

반응형