'분류 전체보기'에 해당되는 글 195건
- 2009.08.01 Microsoft .NET Framework 다운로드 페이지...
- 2009.07.25 파일날짜 일괄변경 프로그램 - v0.2 2
- 2009.07.09 Windows Layout (윈도우창 이동 프로그램 - 3) 8
- 2009.07.09 Windows Mobile 프로그램 제거에 남은 목록 제거 방법.
- 2009.07.05 폴더명으로 파일명 일괄변경하는 프로그램. 28
- 2009.06.21 윈도우창 이동 프로그램 - 2
- 2009.06.21 Win32 API Dialog 기반으로 만들기
- 2009.06.18 Windows Mobile 6.5 Developer Tool Kit
- 2009.05.03 파일날짜 일괄변경 프로그램 19
- 2009.03.27 WMI를 이용한 전원관리, 프로세스관리, PC 최적화 라이브러리. (닷넷)
파일날짜 일괄변경 프로그램을 약간 업데이트 했습니다.
우선 복구하기 기능을 추가했습니다. 복구하기 기능은 말 그대로 일괄변경하기 전의 파일이 가지고 있던 날짜로 복구하는 기능입니다. 프로그램을 종료하지 않는 이상 수차례의 일괄변경 후에도 복구가 가능합니다.
그리고 이전 버전의 경우 Windows 7에서 레이아웃이 깨지는 문제로 호환성을 위해서 프로그램의 크기 조절이 제한되었었는데 크기 조절에 제한이 없도록 변경하였습니다.
(사용언어 / 제작툴 / .Net Framework버전 : C# / VS2010 beta1 / 2.0)
이전 버전 받기
최신 버전 받기
기존에 MFC에서 만들었던 것을 WIN32 API를 이용해서 만들었고, 불필요한 코드를 제거함으로써 기존 버전보다 조금 가벼워졌을꺼라 생각합니다.
참고로 종료방법은 트레이 아이콘에서 왼쪽 또는 오른쪽 마우스 버튼을 누르시면 종료할 수 있는 메뉴가 나옵니다.
사용 방법은 이전 버전의 글을 참고해주세요.
(사용언어 및 제작툴 : WIN32 API / VS2008)
이전 버전 받기
Windows Mobile에서 설정(Settings) -> 시스템(System) -> 프로그램 제거(Remove Programs)에서 프로그램을 지웠는데 목록이 남아있는 경우가 있습니다.
이 경우에는 우선 아래의 절차를 거쳐서 프로그램의 잔존 파일과 레지스트리 정보를 제거해 줍니다.
- 프로그램이 설치된 폴더 수동으로 삭제.
(폴더 경로를 모르는 경우 4번 레지스트리 정보를 참조하시면 알 수 있습니다.)
- \Windows\Start Menu\Programs 경로에 해당 프로그램과 관련돼서 등록된 파일이 있으면 삭제.
- \Windows\AppMgr 폴더에서 해당 프로그램에 맞는 폴더 삭제.
- [HKEY_LOCAL_MACHINE\Security\AppInstall] 레지스트리 위치에서 해당 프로그램에 맞는 레지스트리키 삭제.
- [HKEY_LOCAL_MACHINE\Software\App] 레지스트리 위치에서 해당 프로그램에 맞는 레지스트리키 삭제.
Windows Mobile 6까지는 4, 5번의 레지스트리 정보를 지워주면 목록에서 사라지는 것으로 알고 있습니다.
6.1 버전부터는 관련 정보가 DB에 저장되는것 같은데, 위의 절차를 거친 이후에도 목록이 남아 있다면 MemMaid라는 프로그램을 이용해서 아래의 절차를 거치시면 제거가 됩니다.
(http://www.dinarsoft.com/memmaid/ -> 이곳에서 다운로드 가능하고 15일 트라이얼로 사용 가능합니다.)
- 프로그램 실행 후 Jump To(menu) -> Databases -> Database Usage 선택.
- 트리 메뉴에서 \mxip_swmgmt.vol -> SwMgmtMetadataStore 선택후 Browse 버튼 선택.
- 리스트 중 삭제하고 싶은 항목 선택 후 Database -> Delete Selected record 선택.
좀 더 알아봐야겠지만 테스트하고 인터넷 자료 검색한 결과로는 6.1 버전부터 데이터베이스에 관련 정보를 저장하는 것 같습니다.
실제로 6.0 버전의 에뮬레이터에서는 레지스트리 정보만 삭제하면 프로그램 제거 목록에서 사라졌었고, SKTools, Pocket Mechanic 등의 프로그램에서도 레지스트리 정보를 참고해서 프로그램이 동작하는 것을 확인했습니다.
참고한 사이트는 아래와 같습니다.

제목 그대로 폴더명을 이용해서 파일명을 변경하는 프로그램입니다.
사용법은 우선 이름을 변경하고 싶은 파일이 있는 폴더를 프로그램으로 드래그 & 드롭하면 목록이 추가됩니다.
파일은 드래그&드롭이 되지 않고, 드래그 & 드롭한 폴더를 기준으로 모든 하위 폴더&파일을 순회하면서 목록에 추가됩니다.
(숨긴파일에 대해서는 추가되지 않습니다.)
기본적인 명명 규칙은 폴더명에 '_'를 붙힌 후 일련번호를 붙히는 형식으로 작동됩니다.
(확장자는 원본 그대로 사용하고, 일련번호 자릿수는 1~10자리로 공백에 대해서는 0으로 채워집니다.)
아래 캡쳐화면은 "C:\Users\Administrator\Desktop" 경로에 있는 "Picture" 폴더 하나를 드래그 & 드롭한 것입니다.
아래 캡쳐화면은 "상위 경로 포함" 옵션을 사용한 경우로 드래그 & 드롭시 폴더목록(이 경우 Picture 폴더)을 최상위로 해서 최종 파일까지의 경로를 '_'로 구분하면서 최종 파일명을 생성합니다.
참고로 "일련번호 자릿수", "상위 경로 포함" 옵션은 폴더&파일 추가 후에도 수시로 변경 가능합니다.
또한, 추가되는 파일의 확장자는 특별히 가리지는 않지만 사진파일 관리를 위해 만든 프로그램으로 사용법이 사진파일명 변경에 최적화 되어있습니다.
(사용언어 / 제작툴 / .Net Framework버전 : C# / VS2010 beta1 / 2.0)
기존의 윈도우창 이동 프로그램을 업그레이드했다.
기존의 Ctrl + 1, 2, 3키를 이용했던 것을 바꿔서 Ctrl 키는 그대로 두고 Numpad의 숫자를 이용하게 변경했다.
Numpad에서 1~9번까지 9개의 키를 사용함으로써 윈도우의 크기 및 위치가 변경되는 범위를 늘렸고, 기존의 1, 2, 3키를 이용했던 것과 동일한 효과로 맵핑되는 것은 Numpad의 4, 5, 6번 키이다.
(사용언어 및 제작툴 : MFC / VS2008)
2009.06.21
Windows 7에서 작동 안되던 것 임시 해결.
이전 버전 받기
#include <windows.h> #include "resource.h" BOOL CALLBACK DlgProc(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1),HWND_DESKTOP,DlgProc); return 0; } BOOL CALLBACK DlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG: return TRUE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDOK: case IDCANCEL: EndDialog(hDlg,0); return TRUE; } break; } return FALSE; }
Windows Mobile 6.5 Developer Tool Kit 다운로드
2009.06.03에 릴리즈됨.
글 올리는 시점에서 한글버전 없음.
2009.06.03에 릴리즈됨.
글 올리는 시점에서 한글버전 없음.
2009.06.18 추가내용
SDK가 아닌 DTK라는 명칭의 사용은 기존 6.0 버전의 SDK를 기본으로 사용하고 6.5에서는 추가로 emulators, gesture APIs, samples만 제공하기 때문이라고 "Windows Mobile Team Blog" 에 써있음...
SDK, DTK, DRK: WTF?! -> 클릭시 원문으로 이동~

도깨비님의 요청에 의해서 파일날짜를 일괄변경하는 프로그램을 만들어 봤습니다. 파일의 '만든 날짜', '수정한 날짜', '액세스한 날짜'를 지정한 날짜 및 시간으로 일괄변경시켜주는 간단한 프로그램입니다.
리네이머에 기능을 추가하려다가 리네이머의 초기목적이 심플이였기 때문에 별도의 프로그램으로 만들었습니다.
사용법은 우선 일괄변경하고자 하는 파일들을 프로그램위로 끌어놓습니다. 그 다음에 일괄변경할 날짜 및 시간을 정해주고 '변경하기' 버튼을 클릭하시면 일괄변경됩니다.
'날짜만 적용' 버튼을 체크하시고 '변경하기' 버튼을 누르면 말 그대로 설정한 날짜 및 시간에서 날짜 부분만 적용하고 시간은 원래 파일의 시간을 그대로 사용합니다.
참고로 '변경하기' 버튼을 누르면 바로 적용되고 복구되지 않으니 사용에 주의해주시기 바랍니다.
또한 C#으로 만들었기 때문에 닷넷프레임워크 2.0 이상이 설치되있어야 실행이 가능합니다.
(닷넷 프레임워크 다운로드와 관련해서는 2008/06/28 - [C#] - Microsoft .NET Framework 다운로드 페이지...를 참고해주세요.)
아래는 프로그램의 캡쳐화면입니다~
파일 추가 후
날짜만 적용 후
날짜 및 시간 적용 후
참고로 'Windows 7'에서는 화면이 아래와 같습니다. 뭐가 문제인지 XP에서 코딩한 것을 7에서 실행하면 레이아웃이 깨져서 일부분만 수정해놨습니다.(혹시 XP같은 모양으로 실행되신다면 리플 달아주세요;;;)
Windows 7 실행모습
(사용언어 / 제작툴 / .Net Framework버전 : C# / VS2008 / 2.0)
2009.07.25
Windows 7 최근 버전에서 레이아웃 깨지는 문제 발생 안함
최신 버전 받기
졸업작품에서 사용했던 WMI를 이용한 몇가지 기능을 라이브러리화 시켜봤습니다.
총 4개의 클래스중 ProcessInfo는 단순한 구조체 용도이고 PowerManager, ProcessManager, RegistryManager 이렇게 3개의 클래스가 실제 WMI를 이용한 클래스이며 각각 아래와 같은 역할을 합니다.
PowerManager : 로그오프, 재부팅, 종료 등의 기능 수행
ProcessManager : 프로세스 목록을 얻고, 핸들번호를 이용 프로세스 종료 기능 수행
RegistryManager : 레지스트리 수정을 이용한 윈도우 최적화 기능 수행
모든 메소드를 정적메소드로 구현했기 때문에 별다른 객체 생성없이 사용이 가능하며 로컬컴퓨터가 아닌 원격컴퓨터를 대상으로 사용한다고 가정하에 구현했습니다.
자주 쓰이는 매개변수로는 IPAddress, Username, Password 정도가 있는데 각각의 의미는 아래와 같습니다.
IPAddress : 원격지 컴퓨터의 IP주소(동일 작업그룹내에서는 컴퓨터이름으로 사용가능)Username : WMI를 실행시킬 수 있는 권한을 가진 계정의 아이디Password : WMI를 실행시킬 수 있는 권한을 가진 계정의 비밀번호
그리고 RegistryManager클래스 사용시 매개변수로 쓰일 RegistryManager.OptimizeList 열거체는 대략 아래와 같이 사용하시면 되고, 자세한 것은 KAISTIZEN님의 "[C#] Flag 연산 총정리"을 참조하시기 바랍니다.
// 초기 값으로 None를 선택해 줌 RegistryManager.OptimizeList optimizeList; optimizeList = RegistryManager.OptimizeList.None; // 이후 ^= 연산을 통해서 사용하고 싶은 항목을 선택해줍니다. // ^= 연산을 한번씩 수행할 때 마다 결과가 반전됩니다. optimizeList ^= Common.OptimizeList.Item1; optimizeList ^= Common.OptimizeList.Item3; optimizeList ^= Common.OptimizeList.Item7;
실제 사용은 WMI.dll, WMI.xml 파일을 같은 곳에 두고 참조를 해서 사용하시면 되고, 나머지는 인텔리센스나 도움말 파일을 보시면 별다른 어려움 없이 사용가능할 것 같습니다.
(사용언어 / 제작툴 / .Net Framework버전 : C# / VS2008 / 2.0)