Windows 10에서 SubCommands 또는 ExtendedSubCommands 레지스트리 키를 사용하여 파일 폴더 (디렉토리)에서 계단식 메뉴를 구현하면 흥미로운 일이 발생합니다. 작업 표시 줄에서 고정 파일 탐색기 바로 가기를 마우스 오른쪽 단추로 클릭하고 폴더 창 열기 대신 점프 목록에서 폴더를 클릭하면 계단식 메뉴의 마지막 항목이 실행됩니다.
( 이 버그는 Microsoft Answers 포럼에서 처음보고되었으며 거기에서 내 답변을 볼 수 있습니다. 나중에 다른 두 명의 사용자가보고 한대로 이에 대한 블로그 게시물을 작성하기로 결정했습니다. )
문제를 재현하기위한 샘플 REG 파일
다음 내용을 메모장에 복사하고 "mymenu.reg"로 저장 한 다음 실행하십시오.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\directory\shell\CustomMenu] "Icon"="shell32.dll, 39" "MUIVerb"="MyMenu" "SubCommands"="" [HKEY_CLASSES_ROOT\directory\shell\CustomMenu\shell\menu1] "Icon"="c:\\windows\\system32\\cmd.exe, 0" @="Command Prompt" [HKEY_CLASSES_ROOT\directory\shell\CustomMenu\shell\menu1\command] @="cmd.exe \"%1\"" [HKEY_CLASSES_ROOT\directory\shell\CustomMenu\shell\menu2] "Icon"="c:\\windows\\system32\\cmd.exe, 0" @="Run Maintenance (Batch File)" [HKEY_CLASSES_ROOT\directory\shell\CustomMenu\shell\menu2\command] @="D:\\Tools\\maintenance.bat"
파일 폴더를 마우스 오른쪽 버튼으로 클릭하면 계단식 메뉴가 표시되고 완벽하게 작동합니다.
버그 : 작업 표시 줄에서 파일 탐색기 고정 항목을 마우스 오른쪽 단추로 클릭하고 점프 목록에서 폴더를 클릭하면 문제가 발생합니다. 폴더 창을 여는 대신 계단식 메뉴의 마지막 명령 (이 예에서는 "유지 관리 실행")이 실행됩니다. 이것은 버그입니다!
해결 방법 # 1
"폴더"또는 "AllFileSystemObjects"레지스트리 키에서 계단식 메뉴를 구현하면이 문제가 발생하지 않습니다. 그러나 폴더 또는 AllFileSystemObjects 레지스트리 영역에서 구현되면이 PC, 휴지통 등과 같은 가상 폴더와 압축 폴더 및 파일에 대한 메뉴가 표시됩니다. 파일, 가상 폴더 및 압축 (압축) 폴더에 표시되지 않도록하려면 계단식 메뉴에서 AppliesTo REG_SZ 값을 만들어 검사를 추가하십시오.
AppliesTo 값 데이터를 다음으로 설정하십시오.
kind : 파일 폴더 및 System.FileExtension : ". zip"
수정 된 레지스트리 설정
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Folder\shell\CustomMenu] "Icon"="shell32.dll, 39" "MUIVerb"="MyMenu" "SubCommands"="" "AppliesTo"="kind:file folder AND System.FileExtension:\".zip\"" [HKEY_CLASSES_ROOT\Folder\shell\CustomMenu\shell\menu1] "Icon"="c:\\windows\\system32\\cmd.exe, 0" @="Command Prompt" [HKEY_CLASSES_ROOT\Folder\shell\CustomMenu\shell\menu1\command] @="cmd.exe \"%1\"" [HKEY_CLASSES_ROOT\Folder\shell\CustomMenu\shell\menu2] "Icon"="c:\\windows\\system32\\cmd.exe, 0" @="Run Maintenance (Batch File)" [HKEY_CLASSES_ROOT\Folder\shell\CustomMenu\shell\menu2\command] @="D:\\Tools\\maintenance.bat"
해결 방법 # 2
기사 상단의 샘플 REG 파일에 탐색기 % 1을 시작하는 세 번째 메뉴 명령을 포함시킵니다.
[HKEY_CLASSES_ROOT\directory\shell\CustomMenu\shell\menu3\command]
@="explorer.exe \"%1\""
그러나 Cascading 메뉴에는 항상 표시됩니다. Jumplist에서 폴더를 선택하면이 항목 (메뉴의 마지막)이 실행됩니다.