내가 만든 프로그램 확장자 아이콘 등록하기
프로그래밍 언어/C++2011. 11. 1. 04:51
내가 만든 프로그램의 특정 확장자에 대한 아이콘을 등록하고 싶은 경우 아래와 같이 한다
HKEY_CLASSES_ROOT 바로 밑에 자신의 확장자명과 확장자명의 본체를 키로 등록한다 (예:.xxy)
ㄴ.xxy -> 문자열 기본값 : 확장자의 본체 키를 쓴다 (myProgram.xxy)
ㄴmyProgram.xxy : 이 키에서 다시 하위 키를 포함한다
ㄴ shell\\Open\\Command -> 문자열 기본값 : 바로 실행할 exe 경로를 등록한다
(.xxy라는 확장자를 가지는 아이콘을 더블 클릭 했을 경우 그 확
장자를 구동할 수 있는 본체 프로그램 exe를 말한다)
ㄴ DefaultIcon -> .xxy 확장자의 아이콘을 지정한다. 보통 리소스dll (리소스 DLL 생성방법 참조)이
나 exe에서 아이콘을 지정하는 경우가 대부분이다.
확장자를 수동으로 등록하는 경우나 코드에서 등록했을때는 재부팅 전에는 제대로 볼수가 없다. 쉘이 인식을 하지 않기 때문인데 이때 변경 쉘 통지 메시지를 날려주면 Refresh 되면서 재부팅 하지 않고도 인식이 가능하다. 아이콘 갱신 함수는 아래와 같다
// 변경 쉘 통지 (아이콘 갱신)
// SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NULL, NULL);
즉, 위의 레지스트리 문자열 키 및 값을 c++로 등록부분을 작성한 후 맨 아래에 쉘 통지 SHChangeNotify를 써주어야 갱신이 된다.
어때요 참 쉽죠~
'프로그래밍 언어 > C++' 카테고리의 다른 글
XP에서 지원되지 않는 ATL에서의 Syslink control (0) | 2011.11.12 |
---|---|
Set syntax coloring for user-defined keywords (usertype.dat) 설정 (0) | 2011.11.10 |
Visual studio를 이용한 리소스 dll 생성 방법 (2) | 2011.10.27 |
파일 경로(문자열)에서 확장자 얻기 (0) | 2011.10.27 |
GUID 생성 : C++ 코드를 이용한 방법 (0) | 2011.10.27 |