메모장2 한글화를 위해서 context-menu 역시 한글로 하자는 의견이 나와서 수정을 하게 되었다.
물론.. 이번에는 검색도 없이 조언을 받아 약간의 시행오차를 거쳐 수정하게 되었다.
frhed를 이용한 테스트
step 1. 레지스트리는 HKEY_CLASSES_ROOT\*\shell 에 추가되는데 "Open in frhed" 라는 key가 보인다.
step 2. 하위 항목인 "command" 키에는 실행될 프로그램의 경로 및 인자를 넘겨 주기 위한 %1이 존재한다.
step 3. "Open in frhed" 키에 존재하는 (기본값) 의 내용을 수정해 준다.
step 4. context-menu에서 출력되는 모습을 구경한다. 기본값을 설정해준 대로 변경되었다.
이것을 이용하면, 출력 포맷은 바뀌어도 key는 변하지 않으므로 수정이 용이하다고 한다. (BLUE'nLIVE 님의 조언)
레지스트리 편집기를 이용하는 것 말고 프로그램으로 이것을 적용하려면 아래와 같이 하면된다.
[wcslen : http://msdn.microsoft.com/en-us/library/78zh94ax(VS.71).aspx]
물론.. 이번에는 검색도 없이 조언을 받아 약간의 시행오차를 거쳐 수정하게 되었다.
frhed를 이용한 테스트
step 1. 레지스트리는 HKEY_CLASSES_ROOT\*\shell 에 추가되는데 "Open in frhed" 라는 key가 보인다.
step 2. 하위 항목인 "command" 키에는 실행될 프로그램의 경로 및 인자를 넘겨 주기 위한 %1이 존재한다.
step 3. "Open in frhed" 키에 존재하는 (기본값) 의 내용을 수정해 준다.
step 4. context-menu에서 출력되는 모습을 구경한다. 기본값을 설정해준 대로 변경되었다.
이것을 이용하면, 출력 포맷은 바뀌어도 key는 변하지 않으므로 수정이 용이하다고 한다. (BLUE'nLIVE 님의 조언)
레지스트리 편집기를 이용하는 것 말고 프로그램으로 이것을 적용하려면 아래와 같이 하면된다.
HKEY key1; LONG res = RegCreateKey(HKEY_CLASSES_ROOT,L"*\\shell\\Open with notepad2",&key1); if (res == ERROR_SUCCESS) { WCHAR cmd[] = L"메모장2로 열기(&E)"; RegSetValue(key1, NULL, REG_SZ, cmd, wcslen(cmd)); // wcslen - strlen for unicode } res = RegCreateKey(HKEY_CLASSES_ROOT,L"*\\shell\\Open with notepad2\\command",&key1); if (res == ERROR_SUCCESS) { WCHAR cmd[MAX_PATH + 4]; WCHAR path[MAX_PATH]; int len; GetModuleFileName(GetModuleHandle(NULL), path, MAX_PATH); len = wsprintf(cmd, L"%s %%1", path); RegSetValue(key1, NULL, REG_SZ, cmd, len); } |
[wcslen : http://msdn.microsoft.com/en-us/library/78zh94ax(VS.71).aspx]
'모종의 음모 > Notepad2' 카테고리의 다른 글
Notepad2 컴파일을 위한 몸부림 - 7 (6) | 2009.01.04 |
---|---|
Notepad2 컴파일을 위한 몸부림 - 6 (2) | 2009.01.04 |
Notepad2 컴파일을 위한 몸부림 - 4 (9) | 2008.12.28 |
Notepad2 컴파일을 위한 몸부림 - 3 (2) | 2008.12.26 |
Notepad2 컴파일을 위한 몸부림 - 2 (2) | 2008.12.24 |