폴더에 대한 Windows 탐색기에 상황에 맞는 메뉴 항목을 추가하는 방법
레지스트리에 키를 추가하여 Windows 탐색기의 파일에 오른쪽 클릭 상황에 맞는 메뉴 항목을 추가하는 방법을 알아 냈습니다. 즉, Explorer에서 파일을 마우스 오른쪽 버튼으로 클릭하고 해당 파일에 대해 사용자 지정 앱을 실행할 수 있습니다.
폴더에 대해 똑같이하고 싶지만 (아직) 방법을 찾지 못했습니다. 사용자 정의 컨텍스트 메뉴 핸들러 작성 / 작성에 대한 기사를 보았지만 거기에 가지 않겠습니다.
여기 에서 계단식 컨텍스트 메뉴 항목을 바탕 화면과 탐색기의 "컴퓨터"에 추가하는 방법에 대한 기사를 찾았 지만 어떤 폴더에서도 작동하지 않습니다.
컨텍스트 메뉴에 맞춤 앱을 추가하고 파일과 폴더 모두에서 작동하도록하고 싶습니다. 상황에 맞는 메뉴 처리기를 작성하지 않고이를 수행 할 수있는 방법이 있습니까?
Windows 탐색기의 왼쪽 패널 또는 오른쪽 패널의 디렉토리 배경 에서 폴더 를 마우스 오른쪽 버튼으로 클릭 하기위한 컨텍스트 메뉴 :
- 관리자 인 경우 HKEY_CLASSES_ROOT \ Directory \ Background \ shell
- 일반 사용자 인 경우 HKEY_CURRENT_USER \ Software \ Classes \ directory \ Background \ shell
Windows 탐색기의 오른쪽 패널에서 폴더를 마우스 오른쪽 버튼으로 클릭 하기위한 컨텍스트 메뉴 :
- 관리자 인 경우 HKEY_CLASSES_ROOT \ Directory \ shell
- 일반 사용자 인 경우 HKEY_CURRENT_USER \ Software \ Classes \ directory \ shell
모든 파일에 대한 컨텍스트 메뉴 :
- 관리자 인 경우 HKEY_CLASSES_ROOT \ * \ shell
- 일반 사용자 인 경우 HKEY_CURRENT_USER \ Software \ Classes \ * \ shell
모든 경우에:
- "shell"아래에 새 키를 추가하고 상황에 맞는 메뉴 항목의 이름을 지정합니다.
- 이 키 안에 command (필수 이름) 라는 새 키를 추가합니다.
- "command"의 "default"속성을 myprogrampath \ path \ path \ executable.exe % 1 로 편집하여 선택한 파일의 파일 경로와 이름을 사용자 지정 프로그램에 전달합니다.
더 많은 사용자 정의 :
- 아이콘 추가 :
icon
아이콘 리소스 경로와 일치하는 값으로 1 단계에서 생성 한 키의 이름이 지정된 문자열 값을 추가합니다 . 사용할 아이콘을 지정하기 위해 정수 인수를 제공 할 수도 있습니다. 예:%SystemRoot%\System32\shell32.dll,3
- Shift- 클릭시에만 표시 :
Extended
1 단계에서 만든 키에 대해 이름이 지정된 빈 문자열 값을 추가합니다. - 메뉴 항목 레이블 사용자 지정 : 1 단계에서 생성 한 키의 기본값 값 변경
- 메뉴 항목 위치 변경 : 다음
Position
중 하나로 이름이 지정된 문자열 값을 추가합니다 .Top
,Bottom
파일 및 폴더에 대한 레지스트리를 통해이 작업을 수행하는 방법을 설명하는 아래 기사에서 솔루션을 찾았습니다.
다음 두 문서는 추가 정보와 옵션을 제공했습니다.
- Windows Vista, 7 및 8에서 데스크탑 컨텍스트 메뉴를 사용자 정의하는 궁극의 튜토리얼
- Windows 7 바탕 화면 및 내 컴퓨터 상황에 맞는 메뉴에서 즐겨 찾는 프로그램에 대한 계단식 메뉴 추가
나는 돌아가서이 질문에 대해 구체적으로 많이 언급되지 않았기 때문에 다른 주제 에서도 이에 대해 대답했습니다 .
가장 간단한 방법은 "AppliesTo"라는 키에 문자열 값을 추가하고 값을 "under : {path}"로 설정하는 것입니다.
이 예에서는 T 드라이브 만보고 싶으므로 문자열 값은 "AppliesTo": "under : T :"입니다.
C #에서는 다음과 같이 쉽게 수행 할 수 있습니다.
RegistryKey _key = Registry.ClassesRoot.OpenSubKey("Folder\\Shell", true);
RegistryKey newkey = _key.CreateSubKey("My Menu Item");
newkey.SetValue("AppliesTo", "under:T:");
RegistryKey subNewkey = newkey.CreateSubKey("Command");
subNewkey.SetValue("", "C:\\yourApplication.exe");
subNewkey.Close();
newkey.Close();
_key.Close();
더 깨끗하고 쉽고 빠른 솔루션을 찾았습니다. 텍스트 파일을 만들고, 이러한 내용으로 채우고, 필요에 맞게 업데이트하고, .reg 접미사로 저장하고, 실행합니다 (레지스트리의 사용자 부분에 액세스하기 때문에 관리자 권한이 필요하지 않음). ) :
Windows Registry Editor Version 5.00
; Setup context menu item for click on right panel:
[HKEY_CURRENT_USER\Software\Classes\directory\Background\shell\MenuItemNameBackground\command]
@="C:\\yourpath\\executable.exe \"%1\""
; Optional: specify an icon for the item:
; HKEY_CURRENT_USER\Software\Classes\directory\Background\shell\MenuItemNameBackground]
;"icon"="C:\\yourpath\\appicon.ico"
; Optional: specify a position in the menu
; HKEY_CURRENT_USER\Software\Classes\directory\Background\shell\MenuItemNameBackground]
;"position"="Bottom"
; -------------------------------------------------------------------------------------
; Setup context menu item for click on folders tree item:
[HKEY_CURRENT_USER\Software\Classes\directory\shell\MenuItemNamePanel\command]
@="C:\\yourpath\\executable.exe \"%1\""
; Optional: specify an icon for the item:
; [HKEY_CURRENT_USER\Software\Classes\directory\shell\MenuItemNamePanel]
;"icon"="C:\\yourpath\\appicon.ico"
; Optional: specify a position in the menu
; [HKEY_CURRENT_USER\Software\Classes\directory\shell\MenuItemNamePanel]
;"position"="Top"
이 방법으로 구성을 백업 할 수도 있습니다. .reg 파일을 안전한 곳에 저장하기 만하면됩니다. 파일을 시작한 후 수동으로 레지스트리를 편집하는 경우 마우스 오른쪽 버튼을 클릭하고 "내보내기"를 선택합니다.
경로에서 이중 백 스페이스를주의하십시오 : \\
The only good solution I found a really working is : https://superuser.com/questions/1097054/shell-context-menu-registry-extension-doesnt-work-when-default-program-is-other
Add keys in HKEY_CLASSES_ROOT\SystemFileAssociations\your.extension\shell\command Modify the last key with the command you wanna do.
For my purpose it was :
"C:\Program Files (x86)\GPSBabel\gpsbabel.exe" -r -i gpx -f "%1" -x simplify,count=1000 -o gpx -F "%1.gpx"
If I export the it I get a .reg :
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\SystemFileAssociations\.gpx\shell\Simplify gpx\command]
@="\"C:\\Program Files (x86)\\GPSBabel\\gpsbabel.exe\" -r -i gpx -f \"%1\" -x simplify,count=1000 -o gpx -F \"%1.gpx\""
'your programing' 카테고리의 다른 글
이 RESTful 애플리케이션 예제에서 Spring @ResponseBody 주석은 어떻게 작동합니까? (0) | 2020.10.04 |
---|---|
PHP로 JSON에서 빈 객체를 만드는 가장 좋은 방법은 무엇입니까? (0) | 2020.10.04 |
redux-thunk와 redux-promise의 차이점은 무엇입니까? (0) | 2020.10.04 |
자바 스크립트로 iframe src 변경 (0) | 2020.10.04 |
LINQ를 사용하여 트리 검색 (0) | 2020.10.04 |