요즘 Python에 빠져서 정말 허우적 대고 있다. KLDP에 나온 글… “How to be a Hacker라는 글을 보고나서 관심이 생겼다. 새해를 맞이하는 새벽부터 이강성 교수님의 “열혈강의 파이썬 [개정판]”을 보면서 익히고 또 익히고를 약 2주정도 지나서… wxWindow 라는 API를 이용해서 GUI 플밍도 조금 해보고 win32api를 이용해 윈도우 핸들링하는 것도 조금 해보았다.
그러다가 최초로 실용적인 프로그램을 만들어 봤는데. 삼X SDX 다니는 친구의 부탁으로 윈도우 창을 번갈아서 풀스크린으로 돌리는 프로그램을 만들어 준 적이 있다. 자바밖에 짜본적이 없다던 친구는 무척 난감해 하며 비베를 사용하면 가능할것이라는 말까지 하며 부탁을 했는데 문득 생각난게 간단하게 스크립트로 돌리면 되겠다는 생각으로 Active Python을 설치해 간단히 스크립트로 만들어 주었다. 단 2시간만에..ㅋㅋㅋ 물론 win32api는 처음 써봤다. 나 역시 자바 프로그래머라서…. 상세 코드는 아래와 같다…
import win32gui,win32con,time,sys
import pywintypes
import thread
try:
#두번째 인자 부분에 윈도우 캡션 명을 넣고 실행하면 된다.
#한글일 경우에도 다 테스트 했으니 아마 잘 입력한 상태면 이상없이 될꺼야.
#첫번째꺼는 www.python.or.kr 첫 화면
#두번째꺼는 www.naver.com 첫 화면…
hwnd1 = win32gui.FindWindow(None,’한국 파이썬 사용자 모임 – Microsoft Internet Explorer’)
hwnd2 = win32gui.FindWindow(None,’네이버 – 지식까지 찾아주는 검색, 네이버 – Microsoft Internet Explorer’)
#hwnd1 = win32gui.FindWindow(None,’Whatsup Gold – [천안사업장.wup: Network Map]’)
#hwnd2 = win32gui.FindWindow(None,’시스템 모니터링 – Microsoft Internet Explorer’)
except pywintypes.error:
#윈도우 핸들을 얻지 못했을 경우 발생하는 이벤트.
print ‘파라미터를 똑바로 넣으시오…’
sys.exit()
else:
#여기에 초단위로 값을 입력한다.
#eslapetime = 10
try:
eslapetime = int(raw_input(‘화면이 변하는 시간 간격을 입력해라: ‘))
except ValueError:
print ‘숫자를 입력해 주시기 바라네..’
else:
if eslapetime == ” or eslapetime is None:eslapetime = 5
win32gui.ShowWindow(hwnd1,win32con.SW_HIDE)
win32gui.ShowWindow(hwnd2,win32con.SW_HIDE)
def MaxMin():
while 1:
win32gui.ShowWindow(hwnd2,win32con.SW_MINIMIZE)
win32gui.ShowWindow(hwnd1,win32con.SW_RESTORE )
win32gui.ShowWindow(hwnd1,win32con.SW_SHOWMAXIMIZED )
time.sleep(eslapetime)
win32gui.ShowWindow(hwnd1,win32con.SW_MINIMIZE)
win32gui.ShowWindow(hwnd2,win32con.SW_RESTORE )
win32gui.ShowWindow(hwnd2,win32con.SW_SHOWMAXIMIZED )
time.sleep(eslapetime)
thread1 = thread.start_new_thread(MaxMin,())
code = raw_input(‘프로세스를 종료하고 싶으면 ”q”를 입력하시오..!’)
if code == ‘q’:
sys.exit()
주석빼면 20라인 안밖이다… 그리고 이걸 소스코드가 보이니까.py2exe로 패키징을 해서 보네야 되겠다는 생각으로 패키징해서 까지 보네주었다..
소스까지 보네주니 삼모 대기업에 다니는 친구가 소스도 간단하다고 놀라더군…
이렇게 해서 파이썬 추종자가 하나더 늘게 되었다…
이것과 비교해서 나오는게 루비라는 언어이다…루비라는 언어는 파이썬보다 더욱 객체지향적이다…
<파이썬>
abs(-3)
결과 : 3
<루비>
-3.abs
결과 : 3
이런식이다. 그래서 루비가 훨씬더 객체지향적이라고 하는가 보다..
여러 스크립트 언어를 비교해본 기사가 있는데… 루비는 아직 유니코드가 지원이 안되고 스레드 안정성이 없다고 한다. 아직은 루비를 조금더 지켜봐야겠다..그리고 무엇보다도 역시가 짧아서 아직 쓸만한 API가 없다는것도 걸림돌이기도 하다..
좋아…!Python! by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.