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

고수님 윈도우에서 우클릭 메뉴(Context Menu) 추출하기 - 응용편

by OldMac 2017. 6. 10.
728x90


고수님 윈도우에서 우클릭 메뉴 추출하기 - 기초편

http://oldnew.tistory.com/338



이 포스팅은 윈포 ROEN님의 허락을 받았습니다.

부제 : Windows RS2 without APP by ROEN 윈도우에서 우클릭 메뉴 추출하기



응용편에서는 

기초편에서 추출한 ******.reg 파일의 등록과 삭제 

그리고 고수님의 기본 경로를 변경하는 방법을 설명하겠습니다.




추출한 우클릭 메뉴 등록하기


기초편에서 추출한 바탕화면 아이콘의 "내 PC" "관리" 우클릭 메뉴 레지로 등록하는 방법입니다.

그리고 추출한 서브메뉴까지 합쳐진 관리 레지파일로 설명합니다.


관리_우클릭메뉴.reg 파일을 더블클릭하면 됩니다.

(사용되는 레지파일 이름은 기초편에서 본인이 만든 레지입니다.)







등록할 때 에러가 나오는 경우는 거의 대부분 레지 권한문제이니

기초편에 가셔서 권한 변경 방법을 확인하시기 바랍니다.


그리고 별도의 실행파일이 있는 경우 미리 레지 "Command" 부분에 사용된 경로에 실행파일을 복사합니다.

기초편의 "내 PC"의 "계정 설정" 우클릭 메뉴가 별도의 실행파일이 있는 경우입니다.

실행파일 경로가 C:\Windows\Setup\Kor\ 폴더이니 여기에 기초편에서 복사한 실행파일들을 같은 경로에 복사합니다.




추출한 우클릭 메뉴를 등록한 후 삭제할 경우


등록한 레지를 가끔 삭제할 경우가 있는데

레지의 경로를 직접 찾아 레지스트리 편집기에서 하나하나 삭제하는 방법과

추출한 레지파일을 메모장에서 편집한 후 삭제레지 파일로 만들어 사용하는 방법이 있습니다.


배치파일로도 삭제가 가능한데, 이 부분에 대해서는 생초보입니다.^^;


이 포스팅에서는 추출한 레지파일을 가지고, 삭제레지 파일로 만드는 방법을 설명하겠습니다.

우선 기초편에서 추출한 레지들을 하나로 합친 "관리" 레지파일을 메모장으로 열어 경로 이외에는 모든 부분을 삭제합니다.


나머지는 스샷을 보면서.....







이렇게 만든 삭제 레지파일을 더블클릭하여 등록하는 방법처럼 사용하면 됩니다.




추출한 우클릭 메뉴를 바탕화면 우클릭 메뉴로 사용하고자 할 경우


로앤님의 바탕화면 "내 PC" 아이콘에 등록된 우클릭 메뉴들은 오직 "내 PC" 를 우클릭하였을 때만 사용되는 메뉴입니다.

그래서 이 편리한 우클릭 메뉴를 바탕화면 우클릭 메뉴에도 사용할 수 있는 방법을 설명합니다.


수정을 위해서는 "바탕화면 우클릭 경로"를 알아야하는데 이 부분에 대해서는 기초편에서 설명했습니다.

그래도 다시 한번 간단하게 우클릭이 등록되는 기본 경로를 정리하겠습니다.



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


자세한 포스팅은 여기로....

http://oldnew.tistory.com/322



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


HKEY_CLASSES_ROOT\*\shell\



2. "폴더 / 드라이브 / 바탕화면의 "내 PC" / 라이브러리 폴더 / 휴지통 / 탐색창의 목록" 등을 우클릭하였을 때 경로


HKEY_CLASSES_ROOT\Folder\shell\

HKEY_CLASSES_ROOT\LibraryFolder\Background\shell\



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


HKEY_CLASSES_ROOT\Directory\Background\shell\



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


HKEY_CLASSES_ROOT\DesktopBackground\shell\



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


HKEY_CLASSES_ROOT\Drive\shell\



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


HKEY_CLASSES_ROOT\Unknown\shell\



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


HKEY_CLASSES_ROOT\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\



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


이 부분을 계속해서 이야기하는 것은 

우클릭 메뉴를 수정, 삭제, 등록할 때 사용하는 기본 경로라서 그렇습니다.


로앤님의 "관리" 우클릭 메뉴를 메모장으로 열면

아래와 같은 레지로 구성이 되어 있습니다.

대강 어떤 놈들인지 살펴보겠습니다. ^^


머리디밀기로 공부한 부분들이라 설명이 잘못될 수 있습니다.

잘못된 부분은 지적해 주시면 수정하겠습니다. 꾸~~~벅



Windows Registry Editor Version 5.00


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

"MUIVerb"="관리(G)"

"SubCommands"="01;02;03;04;05;06;"

"icon"="imageres.dll,1"

"Position"="Top"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\01]

@="디스크 정리"

"Icon"=hex(2):63,00,6c,00,65,00,61,00,6e,00,6d,00,67,00,72,00,2e,00,65,00,78,\

  00,65,00,00,00


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\01\command]

@="cleanmgr.exe"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\02]

@="시스템 구성"

"Icon"=hex(2):6d,00,73,00,63,00,6f,00,6e,00,66,00,69,00,67,00,2e,00,65,00,78,\

  00,65,00,00,00

"CommandFlags"=dword:00000020


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\02\command]

@="msconfig.exe"


.

.

.

.

.

.



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


이 부분이  바탕화면에 있는  "내 PC" 아이콘을 우클릭하였을 때 나타나는 레지스트리 키입니다.

경로의 끝 부분에 있는 ManageSettings 가 키캆 이름입니다.


"MUIVerb"="관리(G)" 키값에 관리라는 이름이 보입니다.

만약 우클릭하였때 보여지는 이름을 다른 이름으로 하고자할 때는 관리(G) 대신에 다른 이름으로 수정하면 됩니다.


"icon"="imageres.dll,1" 아이콘 모양을 변경하고자할 때는 여기에 원하는 아이콘을 지정하면 됩니다.

imageres.dll,1 이라는 것은 Windows\System32\ 폴더에 imageres.dll 파일의 아이콘 번호 1번이라는 것입니다.

이렇게 경로가 생략된 부분은 모두 Windows\System32\ 가 생략된 것입니다.


"CommandFlags"=dword:00000020 이 명령어는 추가되는 우클릭메뉴 위에 구분선을 만드는 명령어입니다.


"Position"="Top"는 우클릭 메뉴의 상, 중, 하를 말하는 부분입니다.

"Position"="Top" 위에 등록....

"Position"="" 또는 "Position"="Center" 중간에 등록되고, 아무것도 없어도 중간에 등록됩니다.

"Position"="Bottom" 하단에 등록....



[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\01]


이 부분은 서브메뉴 "01 부분의 키값"입니다.

@="디스크 정리" 에서 서브메뉴 이름을 수정하시면 됩니다. " 디스크 정리" 대신 다른 이름으로....


"Icon"=hex(2):63,00,6c,00,65,00,61,00,6e,00,6d,00,67,00,72,00,2e,00,65,00,78,\

  00,65,00,00,00

아이콘 모양인데 헥사코드로 표현된 경우입니다. 이 경우도 헥사코드를 지우고 원하는 아이콘으로 지정하셔도됩니다.



[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\01\command]


01\command 키값입니다.

@="msconfig.exe" "01" 서브메뉴의 실행파일 부분입니다.

위에서 설명했지만 이렇게 경로가 없는 경우는 모두  Windows\System32\ 폳더에 있는 파일들입니다.



대강 레지의 구조와 어떤 부분인지 살펴보았습니다.

이외에 사용되는 명령어 값은 여러가지 더 있지만 나머지는 설명하지 않습니다. ^^;

제가 설명은 했지만 제대로 가진 지식도 아니고, 그 동안의 경험으로 설명하는 부분이라

잘못된 지식이 전달될까봐 샘플에 있는 부분만 설명했습니다.


이런 부분을 공부하고자하면

명령어 또는 레지값으로 구글링하시면 좀더 쉽게 강좌를 찾을 수 있습니다.


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



이제 레지의 경로를 변경하여 바탕화면에서도 사용할 수 있는 레지를 만들어 보겠습니다.

바탕화면 우클릭 레지 경로는 위에서 3번과 4번 경로입니다.


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

HKEY_CLASSES_ROOT\Directory\Background\shell\


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

HKEY_CLASSES_ROOT\DesktopBackground\shell\


보통 바탕화면의 우클릭 메뉴는 4번에만 레지를 등록하여 사용합니다.

그래서 레지의 경로 수정도 4번으로만 하겠습니다.


로앤님의 "관리" 우클릭 메뉴는 서브메뉴가 있는 경우라

다른 우클릭 메뉴와는 조금 다른 구조입니다.

보통은 경로키 값과 명령어 키값 이렇게 두군데의 경로를 수정해 주어야하는데

서브메뉴로 처리할 경우는 경로키 캆만 수정하면 됩니다.

서브메뉴는 어차피 지정된 경로로 인식되는 부부이라서 그렇습니다.


- 수정 전 ( 내 PC 우클릭 메뉴)

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

"MUIVerb"="관리(G)"

"SubCommands"="01;02;03;04;05;06;"

"icon"="imageres.dll,1"

"Position"="Top"



- 수정 후 (바탕화면 우클릭 메뉴)

[HKEY_CLASSES_ROOT\DesktopBackground\shell\ManageSettings]

"MUIVerb"="관리(G)"

"SubCommands"="01;02;03;04;05;06;"

"icon"="imageres.dll,1"

"Position"="Top"


이렇게 로앤님의 레지를 수정하고, 저장하면 됩니다.

나머지는 경로와 상관없이 사용되는 값들이니 신경을 안써도 됩니다.

경로만 수정.......


일반적인 경우도 한번 수정하겠습니다.

제가 사용하는 바탕화면용 "개인설정"인데 이놈을 반대로

"내 PC" 우클릭 메뉴로 만들어 보겠습니다.


이 레지도 서브메뉴를 가지고 있는 경우인데

로앤님의 서브메뉴 구조와 다릅니다.

제가 자세하게 설명을 하지 않아도 레지 경로를 보시면

일정한 규칙을 가지고 있는 것을 볼 수 있고, 

"SubCommands"="" 명렁어 값이 없는 것을 볼 수 있습니다.

그래서 이놈은 서브메뉴 부분의 경로도 모두 수정해야 합니다.



- 수정 전 ( 바탕화면 우클릭 메뉴)

Windows Registry Editor Version 5.00


;개인설정 (+) - Windows 10 RS2 용

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\Personalization]

"Icon"="themecpl.dll"

"MUIVerb"="개인 설정 (+)"

"Position"="Bottom"

"SubCommands"=""


[HKEY_CLASSES_ROOT\DesktopBackground\Shell\Personalization\shell]


[HKEY_CLASSES_ROOT\DesktopBackground\Shell\Personalization\shell\001flyout]

"MUIVerb"="테마 변경"

"Icon"="themecpl.dll"


[HKEY_CLASSES_ROOT\DesktopBackground\Shell\Personalization\shell\001flyout\command]

@="explorer shell:::{ED834ED6-4B5A-4bfe-8F11-A626DCB6A921}"


[HKEY_CLASSES_ROOT\DesktopBackground\Shell\Personalization\shell\002flyout]

"MUIVerb"="바탕화면 배경"

"Icon"="imageres.dll,-110"

"ControlPanelName"="Microsoft.Personalization"

"ControlPanelPage"="pageWallpaper"


[HKEY_CLASSES_ROOT\DesktopBackground\Shell\Personalization\shell\002flyout\command]

@="explorer shell:::{ED834ED6-4B5A-4bfe-8F11-A626DCB6A921} -Microsoft.Personalization\\pageWallpaper"


.

.

.

.

.





- 수정 후 ( 내 PC 우클릭 메뉴)

Windows Registry Editor Version 5.00


;개인설정 (+) - Windows 10 RS2 용

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\Shell\Personalization]

"Icon"="themecpl.dll"

"MUIVerb"="개인 설정 (+)"

"Position"="Bottom"

"SubCommands"=""


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


[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\Shell\Personalization\shell\001flyout]

"MUIVerb"="테마 변경"

"Icon"="themecpl.dll"


[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\Shell\Personalization\shell\001flyout\command]

@="explorer shell:::{ED834ED6-4B5A-4bfe-8F11-A626DCB6A921}"


[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\Shell\Personalization\shell\002flyout]

"MUIVerb"="바탕화면 배경"

"Icon"="imageres.dll,-110"

"ControlPanelName"="Microsoft.Personalization"

"ControlPanelPage"="pageWallpaper"


[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\Shell\Personalization\shell\002flyout\command]

@="explorer shell:::{ED834ED6-4B5A-4bfe-8F11-A626DCB6A921} -Microsoft.Personalization\\pageWallpaper"


.

.

.

.

.




이렇게 경로만 바꾸면 쉽게 본인이 원하는 메뉴로 만들 수 있습니다.

처음에 복잡한 것처럼 보이지만 몇 번만 하면 금방 할 수 있습니다.

그리고 바탕화면과 내 PC 우클릭에 동시 사용하고자 할 경우는

위에 수정 전과 수정 후의 레지파일을 합쳐서 만들면 됩니다. 


삭제레지를 만드는 방법은 위에 설명을 했으니 따라하시면 되고요..


아이콘 모양의 변경같은 경우는

아이콘 추출 프로그램으로 아이콘 번호를 찾아내서 적용하면 됩니다.


대강 응용편을 이쯤에서 마무리할까합니다.


사실 이렇게 어렵게 설명하지않고

우클릭메뉴 응용프로그램을 사용하면 쉽게 추출과 삭제가 가능합니다.

물론 원하는 곳에도 등록이 가능하고요.


대표적인 프로그램으로


- Windows 10 Manager에 포함된 ContextMenuManager.exe (윈도우 버전에 따라 프로그램 이름이 다름)


- Right Click Enhancer


- ContextMenuTuner


- Easy Context Menu


등이 있습니다.

제가 이 프로그램을 언급하는 것은 좀 더 효율적인 작업을 하기 위한 부분입니다.

프로그램 중에 ContextMenuTuner는 발번역 한글화와 설명한 부분이 있으니 참조를 하시고

나머지 프로그램들은 각자 알아서 구글링을 하시면 됩니다.


기초편과 응용편을 어느 정도 공부하시고

이런 응용프로그램의 사용법을 익히히면 좀더 쉽게 본인의 우클릭 메뉴를 만들 수 있을 것입니다.


읽어보시느라 너무 고생들 했습니다. 꾸~~~뻑


다시 한번 이 포스팅을 가능하게 해 주신 로앤님께 감사의 인사를 드립니다.




고수님 윈도우에서 우클릭 메뉴 추출하기 - 기초편

http://oldnew.tistory.com/338


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

http://oldnew.tistory.com/322


나만의 우클릭 메뉴 만들기 ① - Context Menu Tuner_v3.0.0.2 기초편

http://oldnew.tistory.com/310


레지스트리 하이브 로드 또는 언로드(Load or Unload Registry Hives) 작업

http://oldnew.tistory.com/325







728x90

 

 

 

댓글