티스토리 뷰

Windows XP는 특정 확장자를 가진 파일(.txt, .zip 등등)의 아이콘을 폴더옵션의 연결 프로그램 설정하는 곳에서 쉽게 변경할 수 있었다. 그러나 Vista에서는 연결 프로그램 설정에 이 메뉴가 사라져서 아이콘을 변경할 수 없게 되었다. 그래서 확장자 아이콘을 변경하기 위해서는 레지스트리를 편집해 줘야 한다.

1. 아이콘 찾기

우선 바꿀 아이콘을 찾는다. 본인은 .smi 파일을 텍스트 파일(.txt) 아이콘으로 바꾸고 싶었기 때문에 이것이 어디 있는지 찾아야 했다. 바로 아래와 같은 아이콘이다.
사용자 삽입 이미지

일반 아이콘 파일(.ico)일 경우 아이콘 하나만 가지고 있기 때문에 찾기가 쉽다. 그러나 아이콘이 여러개 뭉쳐있는 윈도우 기본 아이콘일 경우 상황이 다르다. 이 아이콘을 어떻게 찾는가.
간단한 방법은 폴더 아이콘 변경하는 곳에서 찾는 것이다.

일반 폴더를 마우스 오른클릭 해 보면 '속성' 메뉴가 있다. 여기서 마지막에 보면 Customize라는 탭을 보면 밑에 아이콘 변경이 있다.(영문 윈도우인 관계로 한글판에선 어떻게 써있는지 모르겠다)

사용자 삽입 이미지

여기서 아이콘 변경을 누르면 다음과 같이 아이콘 변경 화면이 나온다.
사용자 삽입 이미지

여기에서 Browse 버튼을 눌러서 원하는 아이콘 파일을 찾는다. 윈도우 기본 아이콘의 경우 %SystemRoot%\System32\SHELL32.dll 파일에 있다.
그러면 밑에 아이콘 목록이 쭉 나오는데 여기서 그림과 같이 왼쪽 위부터 밑으로 세어서 아이콘이 몇번째에 있는지 찾는다.
그럼 일단 아이콘 찾는일은 끝난 것이다.

2. 레지스트리 수정

이제 찾은 아이콘을 확장자에 반영해야 한다.
실행 -> regedit 를 실행시킨다.
사용자 삽입 이미지

위와 같이 레지스트리 편집기가 뜨면 'HKEY_CLASSES_ROOT' 항목에서 원하는 확장자(예: .smi) 항목을 찾는다.
그럼 오른쪽과 같이 (Default)에 'smi_auto_file' 이라고 써 있다.
그러면 이것을 다시 'HKEY_CLASSES_ROOT' 항목에서 찾는다.

사용자 삽입 이미지

위 그림에 보면 'HKEY_CLASSES_ROOT\smi_auto_file' 항목에 DefaultIcon 이란 보조 항목이 있다. 이것이 어떤 아이콘을 사용할 건지 정해주는 것으로 없으면 똑같이 만들어 주면 된다. 그리고 그 안에 (Default)에 아이콘의 위치를 지정해 주면 된다. 텍스트 파일 모양의 아이콘은 앞에서 찾았을 때 70번째에 있었다. 그래서 뒤에 ,70 을 추가해 줬다. 파일에 아이콘이 하나면 안써도 관계 없다.

'%SystemRoot%\System32\SHELL32.dll,70'          <- C:\Windows\System32\SHELL32.dll 에 70번째 아이콘

3. 수정사항 반영

이렇게 수정해 줬으면 실제 하는 일은 끝난 것이다. 그러나 이렇게 하고 리붓을 해도 바꾼 아이콘이 반영되지 않고 계속 예전 아이콘이 나온다. 이것은 아이콘 캐쉬에 예전의 정보가 남아있어서 그렇다고 한다. 이럴 때는 아이콘 캐쉬 파일을 삭제해 주면 된다.(삭제해도 시스템에는 이상이 없다) 그러나 이 파일은 그냥 지워지는 파일은 아니다. 시스템 파일이라 explorer를 강제종료 시키고 삭제해야 한다.

우선 Task Manager를 켠다.(Ctrl + Alt + Del -> Start Task Manager)
그리고 프로세스 탭에 보면 explorer.exe 가 있는데 이것을 강제종료 한다. 그러면 작업표시줄이나 바탕화면, 탐색기 등등.. 이 다 종료된다.
이 상태에서 아까 실행한 Task Manager에서 파일 메뉴에 보면 실행이 있다. 이것을 눌러서 cmd 를 입력하면 커맨드 창이 뜬다.

커맨드 창에서 'cd %USERPROFILE%\AppData\Local' 이라고 입력한다.
여기서 IconCache.db 파일을 삭제해야 되는데 그냥은 삭제가 안되고 속성을 바꿔줘야 한다.
'attrib -h IconCache.db' 해서 속성을 바꾸고 'del IconCache.db' 하면 파일이 지워지게 된다.
이제 'explorer'를 입력해서 다시 explorer를 켜면 모든 과정이 끝난다.

cmd
cd %USERPROFILE%\AppData\Local
attrib -h IconCache.db
del IconCache.db
explorer


여기 까지 하면 아이콘이 바뀐것을 확인할 수 있다.
XP에는 간단하던 것들을 이렇게 복잡하게 해야 하다니...M$의 마인드는 이해할 수 없다.


출처 : http://dubina.ru/archives/111 의 내용을 참고로 재구성
댓글