如何修改桌面资源管理器右键Office子菜单的项顺序
如何修改桌面资源管理器右键Office子菜单的项顺序
嘿Jan,我完全懂你想把右键Office子菜单的项按自己常用优先级排列的需求——默认的字母序确实不太贴合个人使用习惯。其实只要给每个菜单项对应的注册表项加个Position数值,就能轻松自定义顺序,下面我帮你调整好你的注册表文件,还会告诉你原理和操作步骤:
核心原理
Windows默认会根据注册表子项的名称字母顺序排列右键菜单,但我们可以给每个菜单子项添加一个DWORD(32位)值,命名为Position,数值越小,该项在菜单里的位置就越靠前。建议用10、20、30这样的间隔数值,方便以后插入新的菜单项。
调整后的注册表文件
按照你想要的优先级(Excel → Excel Nieuwe sessie → Outlook → Word → Word Nieuwe sessie → Access → PowerPoint → Publicer → Herstel Outlook),我给每个项都加上了对应的Position值,你可以直接使用这个修改后的reg文件:
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\Background\shell\MenuOffice] "ExtendedSubCommandsKey"="Directory\\ContextMenus\\MenuOffice" "MUIVerb"="Office" [HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuOffice\shell\Excel] "Icon"="C:\\Program Files\\Microsoft Office\\root\\Office16\\EXCEL.EXE, 0" "Position"=dword:0000000A ; 优先级1(十进制10) [HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuOffice\shell\Excel2] "Icon"="C:\\Program Files\\Microsoft Office\\root\\Office16\\EXCEL.EXE, 0" "MUIVerb"="Excel Nieuwe sessie" "Position"=dword:00000014 ; 优先级2(十进制20) [HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuOffice\shell\Outlook] "Icon"="C:\\Program Files\\Microsoft Office\\root\\Office16\\OUTLOOK.EXE, 0" "Position"=dword:0000001E ; 优先级3(十进制30) [HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuOffice\shell\Word] "Icon"="C:\\Program Files\\Microsoft Office\\root\\Office16\\winword.EXE" "Position"=dword:00000028 ; 优先级4(十进制40) [HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuOffice\shell\Word2] "Icon"="C:\\Program Files\\Microsoft Office\\root\\Office16\\winword.EXE, 0" "MUIVerb"="Word Nieuwe sessie" "Position"=dword:00000032 ; 优先级5(十进制50) [HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuOffice\shell\Access] "Icon"="C:\\Program Files\\Microsoft Office\\root\\Office16\\MSACCESS.EXE, 0" "Position"=dword:0000003C ; 优先级6(十进制60) [HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuOffice\shell\PowerPoint] "Icon"="C:\\Program Files\\Microsoft Office\\root\\Office16\\POWERPNT.EXE, 0" "Position"=dword:00000046 ; 优先级7(十进制70) [HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuOffice\shell\Publicer] "Icon"="C:\\Program Files\\Microsoft Office\\root\\Office16\\MSPUB.EXE, 0" "Position"=dword:00000050 ; 优先级8(十进制80) [HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuOffice\shell\Herstel Outlook] "Icon"="C:\\Program Files\\Microsoft Office\\root\\Office16\\SCANPST.EXE, 0" "Position"=dword:0000005A ; 优先级9(十进制90) ; 以下命令部分无需修改顺序 [HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuOffice\shell\Excel\command] @="C:\\Program Files\\Microsoft Office\\root\\Office16\\EXCEL.EXE" [HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuOffice\shell\Excel2\command] @="C:\\Program Files\\Microsoft Office\\root\\Office16\\EXCEL.EXE /x" [HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuOffice\shell\Access\command] @="C:\\Program Files\\Microsoft Office\\root\\Office16\\MSACCESS.EXE" [HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuOffice\shell\Word\command] @="C:\\Program Files\\Microsoft Office\\root\\Office16\\winword.EXE" [HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuOffice\shell\Word2\command] @="C:\\Program Files\\Microsoft Office\\root\\Office16\\winword.EXE /x" [HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuOffice\shell\Publicer\command] @="C:\\Program Files\\Microsoft Office\\root\\Office16\\MSPUB.EXE" [HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuOffice\shell\Herstel Outlook\command] @="C:\\Program Files\\Microsoft Office\\root\\Office16\\SCANPST.EXE" [HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuOffice\shell\PowerPoint\command] @="C:\\Program Files\\Microsoft Office\\root\\Office16\\POWERPNT.EXE" [HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuOffice\shell\Outlook\command] @="C:\\Program Files\\Microsoft Office\\root\\Office16\\OUTLOOK.EXE"
操作步骤
- 备份注册表:先打开注册表编辑器(按下
Win+R输入regedit回车),找到HKEY_CLASSES_ROOT\Directory\ContextMenus\MenuOffice项,右键选择「导出」保存为备份文件,防止修改出错后能快速恢复。 - 导入修改后的reg文件:将上面的内容复制到记事本,保存为
OfficeMenuOrder.reg,双击该文件,弹出权限提示时点击「是」确认导入。 - 刷新资源管理器:按
Ctrl+Shift+Esc打开任务管理器,找到「Windows资源管理器」进程,右键选择「重启」;或者注销当前用户再重新登录,新的菜单顺序就会生效啦!
如果之后你想调整顺序,只要修改对应项的Position数值,再重新导入一次就行——数值越小位置越靠前,用10的倍数间隔能方便你随时插入新的菜单项~
备注:内容来源于stack exchange,提问作者JanR




