본문 바로가기

2017/02

[Windows] 로그온 배경화면 자동 변경 툴을 제작해보다. 자신의 컴퓨터 배경 화면을 꾸미는 건 언제부터 시작이었을지 모르지만, 기능적으로는 분명한 건 윈도우 3.1 시절 부터 있었다.와.. 그게 도대체 언제적 시절인지.. 그립기만 하네. ㅠㅠ 그러다가 윈도우 비스타 부터였을까? 아니면 윈도우7 부터였을까?OS 자체적으로 바탕화면을 한 번에 여러개 선택하고 자동으로 화면이 바뀌도록 하는 기능이 도입이 되었다. 아마 나는 윈도우7 때 부터 썼던 것 같다. 그러다 문득 윈도우 바탕화면이 아닌 로그온 할 때의 화면도 변경해보려고 해서 검색해 보다가 (윈도우 바탕화면과 로그온 배경화면은 엄연히 다른 영역입니다. ㅋ) 그런 방법이 있다는 것을 알게 되었고, 윈도우XP 시절에도 그런게 있다는 걸 뒤늦게 알았는데... -_-; 암튼 로그온 화면을 간편하게 바꿔주는 툴들도 써.. 더보기
[Python] 외부 파일 실행 시에 cmd 쉘을 발생시키지 않는 ShellExecute 파이썬에서 외부 파일을 실행하기 위해서 많이들 사용하는 명령어는 다음의 것들일 것이다. - os.system("실행할 파일") - os.popen("실행할 파일") - subprocess.call("실행할 파일") 이 3가지 중 os 모듈을 이용하는 것은 실행한 파일이 종료되기 전까지는 계속 메모리에 상주가 된다.os.system과 os.popen은 cmd에서 명령어를 입력하는 것과 같은 동작을 해준다.즉, "실행할 파일"을 구동시키게 되면 실행된 것들의 프로세싱이 끝나기 전 까지는 프로세스로서 cmd.exe가메모리에 상주되는 것이다. subprocess만이 cmd를 통하지 않고 바로 실행을 시켜주지만 여전히 "실행할 파일"은 본인을 실행시킨 프로세스에자식 프로세스로 귀속이 된다.(cmd를 거치지는 않았.. 더보기
[Python] JPG 그림 파일 용량 줄이기 연습 삼아 만들고 있는 혼자 쓸 툴에서 jpeg 이미지의 크기를 줄여야 하는 상황이 발생해서 검색을 해보다가파이썬 2.7.x 인지 3.x인지 얘기도 없고 코드들을 보면 맞지 않는 것들도 좀 있고 그래서 답답하던 찰나...(stackoverflow.com 사이트도 암튼 유저들의 집합이라 잘못된 정보 많은 듯.. ㅡㅡㅋ) 날이 추워서 계속 검색하기 귀찮아져서 그냥 검색한 2개의 예제문을 보고 코드 해석하고 안 맞는 부분은유추해서 정리해보니 잘 되었다. 01. from cStringIO import StringIO 02. from PIL import Image 03. 04. file = r'C:\Users\Slays_Desktop\Pictures\logon_img\original.jpg' 05. 06. img.. 더보기
[wxPython] wx.frame 의 style 지정 방법 wxpython을 사용해서 윈도우 창 (프레임)의 스타일을 지정해줄 때에 사용하는 기본은 다음과 같다. import wx app = wx.App() frame = wx.Frame(None, -1, 'frame test', style=wx.DEFAULT_FRAME_STYLE) frame.Show() app.MainLoop() 윈도우의 창을 띄우기 위해 사용되는 아주 기본이 되는 코드이고 실행 결과는 다음과 같다. [그림. 1] 기본 Frame의 모습 위 코드의 2번 째 줄의 인자값들이 바로 윈도우 창을 구성하는 요소가 되는데,창의 사이즈를 고정시킨다거나 또는 최소, 최대, 종료 버튼 등을 활성화 또는 비활성화를 시키고 싶어서검색을 해봤는데.... 윈도우 창의 기본 프레임을 구성하는 건 wx.DEFAULT_.. 더보기
[Pyinstaller] exe 파일 빌드하며 짜증났던 부분 정리 파이썬을 exe 파일로 빌드하기 위해서는 py2exe 라는 플러그인이 필요하다.근데 요놈이 x86 파일은 잘 뽑아내는데 x64 파일은 뽑아내다가 에러를 토하시니... 다른 걸 알아보고 알아보다가 pyinstaller 라는 녀석을 발견하게 되었다. 뭐 사용 방법에 대해서는 검색하면 엄청 많이 나온다.굳이 여기에 다 열거하긴 귀찮고, 설치 부터 사용법 까지 대략 잘 정리해놓으신 분의 블로그 주소를 링크해본다. http://m.blog.naver.com/mandori21/220372958993 그런데 왜 이 글을 쓰기 시작했냐면 현재 Pyinstaller 는 개발자 용 버전까지 해서 3.3xxxx 까지 업데이트 되어 있다.문제점을 몇 가지 기록해두기 위해서 글을 작성해본다. 개인적으로 사용하는 몇 가지에 대해.. 더보기
[wxPython] wx.CheckBox를 이용한 체크박스 만들기 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/109496 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] wx.CheckBox를 이용한 체크박스 만들기 # -*- coding: cp949 -*- #!/usr/bin/python# checkbox.py import wx class MyCheckBox(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title, size=(250, 170)) panel = wx.Panel(self, -1) #.. 더보기
[wxPython] wx.ComboBox(콤보 박스)를 사용법 및 이벤트 처리 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/107312 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] wx.ComboBox(콤보 박스)를 사용법 및 이벤트 처리 # -*- coding: cp949 -*- #!/usr/bin/python# combobox.py import wx class MyDialog(wx.Dialog): def __init__(self, parent, id, title): wx.Dialog.__init__(self, parent, id, title, size=(250, 270)) panel = wx.Panel(self.. 더보기
[wxPython] wx.StaticBox를 이용한 컨트롤 그룹만들기 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/107288 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] wx.StaticBox를 이용한 컨트롤 그룹만들기 # -*- coding: cp949 -*- #!/usr/bin/python# staticbox.py import wxclass MyDialog(wx.Dialog): def __init__(self, parent, id, title): wx.Dialog.__init__(self, parent, id, title, size=(260, 250)) # StaticBox 생성 wx.StaticBo.. 더보기
[wxPython] wx.StaticText를 이용한 문자열 출력 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/107269 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] wx.StaticText를 이용한 문자열 출력 # -*- coding: cp949 -*- #!/usr/bin/python# statictext.py import wx class MyFrame(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title, wx.DefaultPosition, wx.Size(320, 350)) lyrics1.. 더보기
[wxPython] wx.StaticLine 을 이용한 구분선 추가 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/106918 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. 출처: http://slays.tistory.com/35 [Reverse Engineering] [wxPython] wx.StaticLine 을 이용한 구분선 추가 # -*- coding: cp949 -*- #!/usr/bin/python# centraleurope.py import wxclass MyDialog(wx.Dialog): def __init__ (self, parent, ID, title): wx.Dialog.__init__(self, pare.. 더보기
[wxPython] wx.BitmapButton의 사용 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/106883 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] wx.BitmapButton의 사용 # -*- coding: cp949 -*-#!/usr/bin/python# player.py import wx class MyFrame(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title, size=(350, 300)) panel = wx.Panel(self, -1) # 화면용 패널 pnl1.. 더보기
[wxPython] wx.Button를 이용한 Button 이벤트 처리 와 랜덤 숫자 추출 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/106147 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] wx.Button를 이용한 Button 이벤트 처리 와 랜덤 숫자 추출 # -*- coding: cp949 -*- #!/usr/bin/python# buttons.py import wx # 랜덤 처리 유닛 import random # Dialog 사이즈 APP_SIZE_X = 300 APP_SIZE_Y = 200 class MyButtons(wx.Dialog): def __init__(self, parent, id, title): wx... 더보기
[wxPython] 다이얼로그(Dialog) 만들기2 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/104212 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] 다이얼로그(Dialog) 만들기2 # -*- coding: cp949 -*- #!/usr/bin/python# customdialog2.py import wx class MyDialog(wx.Dialog): # 다이얼 로그 초기화 def __init__(self, parent, id, title): wx.Dialog.__init__(self, parent, id, title) vbox = wx.BoxSizer(wx.VERTICAL) st.. 더보기
[wxPython] 다이얼로그(Dialog) 만들기 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/104164행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] 다이얼로그(Dialog) 만들기 # -*- coding: cp949 -*- #!/usr/bin/python # customdialog1.py import wx class MyDialog(wx.Dialog): def __init__(self, parent, id, title): wx.Dialog.__init__(self, parent, id, title, size=(350,300)) # 다이얼 로그 구성 처리 sizer = self.Crea.. 더보기
[wxPython] 이벤트05 (사이즈 이벤트 예제 : wx.EVT_KEY_DOWN) 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/104082 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] 이벤트05 (사이즈 이벤트 예제 : wx.EVT_KEY_DOWN) # -*- coding: cp949 -*- #!/usr/bin/python# keyevent.py import wxclass KeyEvent(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title) panel = wx.Panel(self, -1) # 키누름 이벤트 .. 더보기
[wxPython] 이벤트04 (사이즈 이벤트 예제 : wx.EVT_PAINT) 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/104069 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] 이벤트04 (사이즈 이벤트 예제 : wx.EVT_PAINT) # -*- coding: cp949 -*-#!/usr/bin/python # paintevent.py import wxclass PaintEvent(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title) # Paint 이벤트 함수와 연결 self.Bind(wx.EVT_.. 더보기
[wxPython] 이벤트03 (사이즈 이벤트 예제 : wx.EVT_SIZE) 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/104036 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] 이벤트03 (사이즈 이벤트 예제 : wx.EVT_SIZE) #!/usr/bin/python # -*- coding: cp949 -*- # moveevent.py import wx class MoveEvent(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title) # 좌표값 출력 라벨 구성 wx.StaticText(self, -1.. 더보기
[wxPython] 이벤트02 (사이즈 이벤트 예제 : wx.EVT_SIZE) 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/104016 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] 이벤트02 (사이즈 이벤트 예제 : wx.EVT_SIZE) #!/usr/bin/python # -*- coding: cp949 -*- # sizeevent.py import wx class SizeEvent(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title) # 사이즈 조정 이벤트 연결 self.Bind(wx.EVT_SIZE.. 더보기
[wxPython] 이벤트01 (스크롤 이벤트 예제) 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/104002 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] 이벤트01 (스크롤 이벤트 예제) #!/usr/bin/python # -*- coding: cp949 -*- # myscrollwinevent.py import wx class MyScrollWinEvent(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title) panel = wx.Panel(self, -1) self.st = .. 더보기
[wxPython] Bitmap 화면에 출력하기 본 내용의 출처는 이글루 블로그의 '하린아빠' 라는 네임을 쓰시는 분의 블로그입니다.[출처] - http://pythondev.egloos.com/103759 행여나 이글루 블로그가 없어지면 참고할 곳이 사라지기에 주인장님께 댓글을 남기고 퍼 옵니다. [wxPython] Bitmap 화면에 출력하기 #!/usr/bin/python # -*- coding: cp949 -*- # bitmap.pyimport wxclass MyFrame(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title, size = (300, 300)) # bitmap 생성 self.bitmap = wx.Bitmap('image.. 더보기