'MFC/Application'에 해당되는 글 23건
- 2009.06.21 윈도우창 이동 프로그램 - 2
- 2008.07.09 파일명 일괄변경 프로그램 - 4 11
- 2008.04.06 윈도우창 이동 프로그램 2
- 2007.12.29 파일명 일괄변경 프로그램 - 3 6
- 2007.08.29 찬송가 슬라이드쇼 복사 및 실행...
- 2007.08.14 로또 당첨확인 프로그램... 1
- 2007.07.26 프로젝트 클리너... 2
- 2007.07.12 네이트온 오프라인표시 사용자에게 메시지보내기...(막혔음~) 14
- 2007.06.12 로또번호 역대당첨 횟수...(농협으로 바뀐 후 엑셀 파일 없음~) 13
- 2007.05.31 파일명 일괄변경 프로그램 - 2
우선 기존에 일련번호 제작에 썼던 문자인 '#'을 '*'로 변경했다. 일련번호가 숫자라는 의미로 그냥 #으로 썼었는데 파일명에 #을 써야하는 경우 때문에 변경을 했다.
도깨비님은 escape sequence를 이용해서 파일명에 '#'을 입력할 수 있게 해달라고 요청을 하셨는데 코딩하다보니 어차피 '*'표는 파일명으로 사용을 못하기 때문에 일련번호에 쓰일 문자를 아예 변경하는 것이 더 편하다고 생각되서 현재처럼 변경했다.
그리고 문자 집합을 기존 '멀티바이트 문자 집합'에서 '유니코드 문자 집합'으로 변경함으로써 파일명 변경시 유니코드를 지원한다.
프로젝트 설정에서 문자 집합을 '유니코드 문자 집합'으로 변경하고 문자열 처리와 관련된 변수 선언과 함수 등을 유니코드와 관련된 것으로 바꾸긴 했는데, 여지까지 유니코드 프로그래밍을 안해봤고, 현재 한글OS만 사용중이라서 완벽한 테스트는 하지 못했다.
단순히 키보드입력기에 일본어를 추가하고 테스트해보니 기존 버전에서는 파일명을 바꾸지 못했는데, 이번 버전에서는 파일명을 문제없이 변경했다.
Source: https://github.com/gungume/Renamer/releases/tag/0.4
(사용언어 및 제작툴 : MFC / VS2008)
이전 버전 받기
2006/09/05 - [MFC/Application] - 파일명 일괄변경 프로그램
2007/05/31 - [MFC/Application] - 파일명 일괄변경 프로그램 - 2
2007/12/29 - [MFC/Application] - 파일명 일괄변경 프로그램 - 3
모니터를 30인치로 바꾼 후 해상도를 2560*1600으로 사용하고 있다.
프로그래밍을 할때는 전체화면으로 작업을 하면 편하지만, 이 해상도로 인터넷 등을 하면 너무 크기 때문에 가로크기를 보통 가로해상도의 절반 크기인 1280으로 맞춘후에 왼쪽에 붙혀서 사용하곤 한다.
그러다 가끔은 하나의 프로그램을 모니터화면상의 가운데로 놓고 쓰거나(한쪽에 붙혀서 사용하면 나도 모르게 몸이 그쪽으로 치우쳐진다;;;), 웹브라우저+문서프로그램 등 2개의 프로그램을 동일한 크기로 좌우로 나눠서 사용해야하는 경우가 생긴다.
프로그램의 위치를 가운데나 기타 위치로 이동하는 경우는 그냥 마우스로 이동시켜도 되지만 성격상 위치를 딱 맞춰주는걸 좋아하고(예전에 자석윈도우 프로그램을 썼었는데 비스타 64비트에서는 작동을 안한다...), 프로그램 2개를 나란히 띄우는 경우도 '창 세로 정렬 보기'를 이용하면 알아서 크기에 맞춰서 배치는 해주지만 왼쪽에 웹브라우저 오른쪽에 문서창 이렇게 하고 싶은데 위치가 서로 반대로 되는 경우도 있다.(원하는 위치지정이 가능한지는 모르겠지만 내 지식으로는 모르겠다;;;)
그래서 간단한 프로그램을 작성했다. 키보드 후킹을 이용해서 Ctrl+1, 2, 3키를 눌렀을 경우 작업표시줄에서 현재 활성화된 윈도우에 대해서 각각 왼쪽, 가운데, 오른쪽 정렬을 하게 만들었다.
내 편의에 맞게 만들어서 고해상도 모니터외에는 별로 쓸모없는 프로그램인것 같긴하다. ㅡㅡ
위에서 설명했듯이 우선 작업표시줄에서 현재 활성화된 윈도우에 대해서 작동을 하고 윈도우의 크기 중 세로길이는 화면상에서 작업표시줄을 제외한 영역중 가장 상단부터 하단까지 꽉 채우도록 지정되어 있다.
그리고 가로 크기는 해상도/2로 정했는데 이것역시 작업표시줄을 제외한 해상도를 사용했다.
즉, 프로그램 2개를 동시에 띄운후에 이 프로그램을 사용해서 위치를 지정해주면 작업표시줄의 크기와 위치에 상관없이 2개의 프로그램을 동일한 크기로 띄울 수 있다.
아래는 DLL에 작성된 키보드 후킹과 관련된 간단한 소스이다. 후킹쪽을 제대로 공부안하고 이전에 가지고 있던 소스 등을 활용해서 만들었기 때문에 조건문 등의 처리가 제대로 된건지 모르겠다...일단 작동은 한다;;;
LRESULT CALLBACK KeyboardHookProc(int code, WPARAM key, LPARAM lParam) { if (code != HC_NOREMOVE) { if (lParam<0) { if(GetKeyState(VK_CONTROL)<0) { RECT rect; HWND Wnd = ::GetForegroundWindow(); SystemParametersInfo(SPI_GETWORKAREA, 0, &rect, 0); switch(key) { case '1' : rect.left = 0; rect.right = rect.right/2; ::MoveWindow(Wnd, rect.left, rect.top, rect.right, rect.bottom, TRUE); break; case '2' : rect.left = rect.right/2/2; rect.right = rect.right/2; ::MoveWindow(Wnd, rect.left, rect.top, rect.right, rect.bottom, TRUE); break; case '3' : rect.left = rect.right/2; rect.right = rect.right/2; ::MoveWindow(Wnd, rect.left, rect.top, rect.right, rect.bottom, TRUE); break; } } } } return CallNextHookEx(NULL, code, key, lParam); }
메인 프로그램에서는 단순히 후킹작동과 해제(프로그램 시작과 종료시에 해당기능 호출), 트레이 아이콘 등 자잘한 것만 있다.
프로그램을 실행하면 아무 화면도 안나오고 단순히 트레이쪽에 아이콘 하나만 등록되면서 프로그램이 작동된다. 프로그램을 종료하고 싶으면 트레이아이콘을 더블클릭하거나 마우스 우클릭을 한 후에 '종료'를 누르면 된다.
- 참고 자료 -
트레이 아이콘 : CodeGuru
MFC 모달 다이알로그를 숨김 상태로 시작 : Jiniya.net
(사용언어 및 제작툴 : MFC / VS2008)
최신 버전 받기
2009/07/09 - [Win32 API] - Windows Layout (윈도우창 이동 프로그램 - 3)
오랜만에 업뎃한 리네이머...
기능상의 변화는 없고 성능을 조금 향상시켰다.
우선 왜 그랬는지 모르겠지만 기존 프로그램에서 진행률 출력부분에 Sleep() 함수가 쓰인거를 삭제했고, 많은 갯수의 파일을 다룰때 특히 파일을 드래그&드롭할 때 파일 갯수가 많으면 응답없음이 떴었는데 그 부분을 해결하기 위해서 단일 스레드를 사용했다.
드래그&드롭과, 파일명 변경하는 부분에 스레드를 사용했는데 그냥 단일스레드라 속도향상과는 별 상관없을듯;;;
또한 기존버전까지 있었던 이미지리스트를 제거했다. 있으면 모양은 괜찮아보이는데 드래그&드롭 부분을 스레드로 돌리고나니 뭐가 잘못됐는지 이미지리스트를 얻고 셋팅하는 부분에서 너무 많은 시간이 걸려서 걍 제거 ㅡㅡ
마지막으로 이미 목록에 추가된 파일을 다시 추가하는 것에 대한 중복처리를 반복문으로 처리했었는데 함수를 이용 검색하는 방법으로 중복처리를 함으로써 속도향상시킴...
Source: https://github.com/gungume/Renamer/releases/tag/0.3
(사용언어 및 제작툴 : MFC / VS2005)
이전 버전 받기
2006/09/05 - [프로그래밍.../Source] - 파일명 일괄변경 프로그램
2007/05/31 - [프로그래밍.../Source] - 파일명 일괄변경 프로그램 - 2
교회에서 간단히 사용하려고 만든 프로그램이다...
교회에서 파워포인트 슬라이드쇼 파일(PPS)로된 찬송가 파일을 사용할때 매번 복사 또는 실행을 위해서 파일이 있는 폴더에 이동한 후에 해당 작업을 했었는데 약간의 편의성을 위해서 만들었다.
PPS 파일이 존재하는 경로를 '원본경로'에 지정해주고 원하는 찬송가의 번호를 입력한후에 복사 또는 실행을 하면 된다.
복사는 나열된 번호의 PPS 파일을 바탕화면에 복사해주는 기능이고, 실행은 말그대로 해당 찬송가 번호의 PPS파일을 실행시킴으로서 바로 슬라이드쇼가 진행되게 해준다.
'원본경로'를 변경시키면 변경된 정보가 바로 INI 파일에 저장되서, 다음에 프로그램 실행시 마지막으로 변경된 경로정보가 기본값으로 불러와진다.
특별한 기능 없이 CopyFile()과 ShellExecute() 함수를 이용해서 구현했다...
위의 두 함수만 사용해서 간단히 구현했기 때문에 파일이 없는 경우에 대한 에러처리가 없기 때문에 입력이 잘못되면 그냥 아무런 반응이 없다.
아래는 프로그램 스샷~
(사용언어 및 제작툴 : MFC / VS2005)
오랜만에 코딩한 로또관련 프로그램으로 로또 당첨확인 프로그램이다...
대충 만들다보니 에러처리도 없고 사용방법도 좀 그렇다;;;
대략적인 사용방법은 파일에 저장된 숫자정보를 불러오거나 '수동입력' 버튼을 이용해서 응모한 번호를 입력한다.
파일을 이용하는 방법은 미리 텍스트 파일등에 공백없이 ','로 구분해서 숫자를 입력해놓는다(List.txt 파일 참조...)
'수동입력'은 프로그램 상단에 있는 에디트박스 6개에 숫자를 입력후 버튼을 누르면 입력이 된다.
두가지 방법중 어떤거를 쓰던 입력후에 에디트박스에 당첨번호와 보너스번호를 입력하고 '당첨확인' 버튼을 누르면 당첨여부를 확인할 수 있다.
위에서도 말했듯이 에러처리가 딱히 없으므로 숫자 입력시 중복이 되거나 1~45 이외의 문자를 입력했을때에 대한 처리가 없다.(특히 숫자이외의 문자를 입력하면 오류메시지 많이 뜬다;;;)
아래는 프로그램 스샷~
(사용언어 및 제작툴 : MFC / VS2005)
VisualStudio를 사용해 MFC프로그램을 작성하는 경우 빌드 등을 할때 생성되는 불필요한 파일을 지우는 프로그램이다.
매번 직접 지우기 귀찮아서 간단히 만들어봤다.
사용법은 간단히 프로그램 실행후 정리를 하고 싶은 프로젝트를 폴더채로 드래그&드롭을 한후에 정리하기 버튼을 누르면 된다.
재귀함수를 이용했기 때문에 하위폴더에 있는 파일들도 제거가 가능하고 다수의 프로젝트도 한꺼번에 정리가 가능하다.
제거할 파일의 확장자 기본 목록은 데브피아 오승우님의 프로젝트 클리너 v0.01 을 사용했고 추가로 입력이 가능하다.
아래는 프로그램 스샷~
(사용언어 및 제작툴 : MFC / VS2005)
C&P위주의 코딩이라서 딱히 에러처리같은건 없다;;;
일단 http://zextor.tistory.com/2669774 -> 이곳에서 오프라인 사용자에게 말거는 방법이 자세히 설명되어있다...(설명의 귀차니즘;;;)
프로그램은 위의 링크에서 설명된것중에서 대화창의 "WS_DISABLED" 플래그를 해제해주는 역할을 한다...
일단 프로그램의 모양은 아래와 같고 사용법은 Spy++이랑 같다...
대화창을 활성화하기 위해서 프로그램을 실행하고 위에있는 링크에 있는 방법데로 오프라인표시로 의심되는 사용자의 대화창을 켠다.
이후에 프로그램의 버튼 옆에 있는 아이콘을 아래 스샷처럼 대화를 입력하는 창(=붉은색 네모)에 드래그한다...(이때 다른 부분에 하면 작동이 안된다...)
드래그할때 "ClassName"이 스샷처럼 "SOFTWEB_CONTROL"인것을 확인하고 "대화창 활성화" 버튼을 누른다...
"대화창 활성화" 버튼을 눌렀을때 성공이라는 메시지가 보인다면 아래 스샷처럼 마우스로 대화창을 클릭하고나서 메시지를 보내면 된다...
Spy++ 관련기능 소스참조 : 데브피아 류신 (kurishin)님...
(사용언어 및 제작툴 : MFC / VS2005)
올만에 뻘코딩 한번 해봤다...
1~45개의 각각의 번호에 대해서 여지까지 당첨됐던 횟수를 알려주는 간단한 프로그램이다...
데이터는 국민은행에서 매주 올려주는 엑셀파일을 활용했다...(http://lot.kbstar.com/quics?page=A005344)
초기버전에서는 엑셀파일에서 필요한 부분만 따로 텍스트파일로 저장해서 그 파일에 들어있는 정보를 불러와서 사용했었는데 엑셀파일을 직접 불러오는 방법으로 프로그램을 수정했다.
엑셀파일을 불러오는 부분은 코드프로젝트에서 'CSpreadSheet' 클래스를 받아다가 썼다
(CSpreadSheet - A Class to Read and Write to Excel and Text Delimited Spreadsheet)
사용법은 파일열기 버튼을 눌러서 파일을 불러온 후에 리스트컨트롤의 칼럼을 클릭하면 정렬이 되므로 원하는 형식으로 데이터를 보면 된다...
아래는 프로그램의 스샷으로 데이터를 불러온 후에 당첨횟수로 정렬을 한 상태이다...
(사용언어 및 제작툴 : MFC / VS2005)
기존에 만들었던 파일명 일괄변경 프로그램에 약간 손을 봤다...
우선 일련번호의 시작번호를 지정할 수 있는 기능을 넣었다.
기존 버전에서는 시작번호가 항상 1부터 시작되서 같은 분류에서 사진이 추가되는 경우 처음부터 파일명을 다시 지정해야되는 불편함이 있어서 입력한 숫자를 일련번호의 시작번호로 할수 있도록 기능을 넣었다...
그리고 리스트컨트롤의 컬럼을 클릭시 정렬하는 기능을 추가했다.
드래그&드롭시 선택된 파일의 중간지점을 잡고 끌어오면 그 파일을 기준으로 목록에 추가된다.
예를 들어 파일명이 FileName1~FileName10까지 있다면 전체 선택후 FileName5를 잡고 드래그를 하면 리스트컨트롤에 5~10, 1~4 이순서데로 들어가므로 파일명 변경시 원래 순서가 중요하다면 컬럼을 클릭함으로써 정렬을 하고 파일명 변경이 가능하다.
대충 만들어서 모든 컬럼에 대해 각각 정렬이 되니 사용시에는 '원본 파일명' 칼럼에 대해서만 정렬기능을 사용하면 될듯함...
Source: https://github.com/gungume/Renamer/releases/tag/0.2
(사용언어 및 제작툴 : MFC / VS2005)
이전 버전 받기
2006/09/05 - [프로그래밍.../Source] - 파일명 일괄변경 프로그램
최신버전 받기
2008/07/09 - [MFC/Application] - 파일명 일괄변경 프로그램 - 4