본문 바로가기
Windows 꼼지락.../우클릭 메뉴

우클릭 메뉴(Context Menu) 레지스트리 경로

by OldMac 2017. 5. 19.
728x90

^^; 그 동안 고수님 소스로 우클릭메뉴를 머리디밀기하다

"나만의 우클릭 메뉴 만들기" 포스팅하려니, 레지스트리 경로들이 아리송해서 이번 기회에 정리합니다.


이 포스팅은 머리디밀기의 경험과 구글링으로 해결하는 부분이라

틀린 부분과 빠진 부분이 존재할 수 있습니다.

언제든지 잘못된 부분과 놓친 부분을 말씀해 주시면 감사하겠습니다. 꾸~~~~벅



윈도우 7 / 8 / 8.1 / 10 에만 해당되며, XP에는 해당이 되지 않습니다.



이 포스팅을 하면서 공부한 곳입니다.

http://mywindowshub.com/add-remove-options-context-menu-windows/


https://www.google.co.kr/search?q=Add+or+Remove+Options+from+Context+Menu&hl=ko&gws_rd=cr&ei=jh0fWcHmMYSu0gTgkZTICA


http://www.online-tech-tips.com/computer-tips/windows-right-click-context-menu/


http://www.guidingtech.com/144/how-to-edit-remove-unwanted-applications-from-right-click-menu-in-windows/


http://moaimoai.tistory.com/166


https://msdn.microsoft.com/en-us/library/windows/desktop/cc144175(v=vs.85).aspx



-----------------------------------------------------------------------------------------------------------------------


일반적으로 저희들이 말하는 우클릭 메뉴들은 어떤 상황에 조건들이 충족되어야 보여지는 메뉴들입니다.

그래서 상황에 맞는 우클릭 메뉴들은 서로 다른 레지스트리 경로를 가지고 있는데

이러한 레지스트리 경로는 거의 대부분 아래 경로에 포함이 됩니다.


HKEY_CLASSES_ROOT\ 또는

HKEY_LOCAL_MACHINE\Software\Classes\ 경로입니다.


위에 레지스트리 폴더 및 경로는 부족한 제머리로 같은 경로로 이해하고 있어서

자세한 설명은 마소에서 데리고 왔습니다. ^^;

읽어보아도 짧은 지식으로는 모두 이해할 수 없어서 중요한 부분만 암기합니다. ㅋㅋ


레지스트리 경로에 대한 자세한 설명은.....

https://support.microsoft.com/ko-kr/help/256986/windows-registry-information-for-advanced-users



다음은 시스템에서 사용하는 미리 정의된 키가 나열되어 있습니다. 키 이름의 최대 크기는 255자입니다. 


HKEY_CURRENT_USER

현재 로그온되어 있는 사용자에 대한 구성 정보의 루트가 포함됩니다. 사용자의 폴더, 화면 색상 및 제어판 설정이 여기에 저장됩니다. 이 정보는 사용자 프로필과 관련됩니다. 이 키는 "HKCU"로 간략히 표시되기도 합니다.


HKEY_USERS

컴퓨터에서 로드된 모든 사용자 프로필이 포함됩니다. HKEY_CURRENT_USER는 HKEY_USERS의 하위 키입니다. HKEY_USERS는 "HKU"라고 간략히 표시되기도 합니다.


HKEY_LOCAL_MACHINE

컴퓨터에 특정한 구성 정보가 포함됩니다(임의의 사용자에 해당). 이 키는 "HKLM"으로 간략히 표시되기도 합니다.


HKEY_CLASSES_ROOT

HKEY_LOCAL_MACHINE\Software의 하위 키입니다. 여기에 저장되는 정보는 Windows 탐색기를 사용하여 파일을 열 때 올바른 프로그램이 열리도록 합니다. 이 키는 "HKCR"로 간략히 표시되기도 합니다. 

Windows 2000에서 시작하는 경우 이 정보는 HKEY_LOCAL_MACHINE과 HKEY_CURRENT_USER 키에 저장됩니다. HKEY_LOCAL_MACHINE\Software\Classes 키에는 로컬 컴퓨터의 모든 사용자에게 적용할 수 있는 기본 설정이 포함됩니다.HKEY_CURRENT_USER\Software\Classes 키에는 기본 설정을 무시하고 대화형 사용자에게만 적용되는 설정이 포함됩니다. 

HKEY_CLASSES_ROOT 키는 이 두 소스의 정보를 병합하는 레지스트리 뷰를 제공합니다. HKEY_CLASSES_ROOT는 이전 버전의 Windows용으로 설계된 프로그램에 대해서도 이러한 병합된 뷰를 제공합니다. 

대화형 사용자에 대한 설정을 변경하려면 HKEY_CLASSES_ROOT에서가 아니라 HKEY_CURRENT_USER\Software\Classes에서 변경해야 합니다. 

기본 설정을 변경하려면 HKEY_LOCAL_MACHINE\Software\Classes에서 변경해야 합니다. 

HKEY_CLASSES_ROOT에 있는 키에 값을 쓰는 경우 시스템은 HKEY_LOCAL_MACHINE\Software\Classes에 정보를 저장합니다. 

HKEY_CLASSES_ROOT에 있는 키에 값을 쓰고 해당 키가 이미 HKEY_CURRENT_USER\Software\Classes에 있는 경우 시스템은 HKEY_LOCAL_MACHINE\Software\Classes에 정보를 저장하지 않고 HKEY_CURRENT_USER\Software\Classes에 정보를 저장합니다.


HKEY_CURRENT_CONFIG

시스템 시작 시 로컬 컴퓨터에서 사용하는 하드웨어 프로필에 대한 정보가 포함됩니다.


참고

64비트 버전의 Windows XP, Windows Server 2003 및 Windows Vista에 있는 레지스트리는 32비트 및 64비트 키로 나누어져 있습니다. 32비트 키 대부분은 해당하는 64비트 키와 이름이 같으며 마찬가지로 64비트 키 대부분은 해당하는 32비트 키와 이름이 같습니다. 64비트 버전의 Windows XP, Windows Server 2003 및 Windows Vista에 포함되어 있는 기본 64비트 버전의 레지스트리 편집기는 다음 노드 아래에 32비트 키를 표시합니다.

HKEY_LOCAL_MACHINE\Software\WOW6432Node




이제 본격적으로 우클릭 메뉴가 등록되는 경로(키)들을 살펴보겠습니다.


아래의 모든 레지스트리 경로에는 "Shell"및 "Shellex" 키값이 있습니다. 

"Shell"및 "Shellex" 키에는 파일, 폴더 또는 드라이브를 우클릭할 때 표시되는 옵션들을 가지고 있습니다.


"Shell" 키에는 보통 저희가 사용하는 우클릭메뉴들을 만들며,

"Shellex" 키에는 특수한 상황에 맞는 우클릭메뉴들을 만듭니다.


 "Shellex" 키는 우선 머리속에서 지우셔도 됩니다.

저의 기준이지만 이 부분의 레지는 거의 만지지않아서, 저는 이런 놈이 있구나하고 지나쳤습니다. ^^;


이 포스팅은 경로에 대한 부분만 설명하는 포스팅이라 다른 부분들은 설명하지 않습니다.



1. "파일"을 우클릭하였을 때 경로


HKEY_CLASSES_ROOT\*\shell\ 또는

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\


* 하위 Shell 키에 만드시면 됩니다.

개인적으로 저는 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell 키를 주로 사용합니다.



2. "폴더 / 드라이브 / 바탕화면의 "내 PC" / 라이브러리 폴더 / 휴지통 / 탐색창의 목록" 등을 

   우클릭하였을 때 경로


HKEY_CLASSES_ROOT\Folder\shell\ 또는

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\



라이브러리 폴더의 경로는 아래 경로입니다.

하지만 윈도우의 라이브러리 들도 폴더의 개념이라 라이브러리와 관련된 우클릭을 추가할 때는

폴더 레지스트리 부분에도 같이 추가를 시켜주어야합니다.


HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\ 또는

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\LibraryFolder\Background\shell\



3. "바탕화면 / 폴더의 빈공간" 등을 우클릭하였을 때 경로


HKEY_CLASSES_ROOT\Directory\Background\shell\ 또는

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\



4. "바탕화면 빈공간" 을 우클릭하였을 때 경로


HKEY_CLASSES_ROOT\DesktopBackground\shell\ 또는

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DesktopBackground\shell\


오직 바탕화면에만 적용됩니다.


 

5. "드라이브 아이콘" 을 우클릭하였을 때 경로


HKEY_CLASSES_ROOT\Drive\shell\ 또는

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Drive\shell\


탐색기에서 드라이브 아이콘을 우클릭하면 적용되는 부분입니다.



6. "알 수 없는 상황에 맞는 메뉴" 에 옵션을 추가할 때


HKEY_CLASSES_ROOT\Unknown\shell\ 또는

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Unknown\shell\ 





7. "바탕화면의 내 PC" 을 우클릭하였을 때 경로


HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\ 또는

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\



8. 우클릭 메뉴중에 서브메뉴가 있는 경우


예제와 같이 "SubCommands"="admin;users;app;appl;defender;defenderl;ip;ipl;sp;spl"  서브메뉴 키값이 있는 경우는


각각의 서브 메뉴들은

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\

경로에 있습니다.




9. 나머지 우클릭 메뉴와 관련된 경로 (설치한 프로그램과 관련된 우클릭 / 폴더로 복사, 이동 등등)


HKEY_CLASSES_ROOT\*\shellex\contextmenuhandlers\


HKEY_CLASSES_ROOT\AllFileSystemObjects\shellex\contextmenuhandlers\


HKEY_CLASSES_ROOT\Folder\shellex\contextmenuhandlers\


HKEY_CLASSES_ROOT\Directory\shellex\contextmenuhandlers\


HKEY_CLASSES_ROOT\<ProgID>\shellex\contextmenuhandlers\


HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers\


HKEY_CLASSES_ROOT\AllFilesystemObjects\





---------------------------------------------------------------------------------------------------------


이 정도로 마무리합니다.

제가 그동안 허접한 우클릭 메뉴들을 만들면서 경험한 레지스트리 경로들입니다.

머리디밀기한 부분이라 잘못된 정보가 있을 수 있으니

지적해 주시면 수정하겠습니다. 꾸~~~~벅






728x90

 

 

 

댓글