Win11

Win11 右键菜单与窗口管理

警告
本文最后更新于 2026-05-20,文中内容可能已过时。

日常使用 Win11,右键菜单和窗口控制是高频操作入口。系统自带的菜单和窗口功能满足基础需求,而借助第三方工具可以进一步优化操作体验。1

本文介绍四款工具:Dism++(改回经典菜单)、ContextMenuManager(精简菜单项)、Nilesoft Shell(扩展菜单功能)和 SmartContextMenu(窗口增强管理)。

Dism++

Dism++ 是由初雨团队开发的系统维护工具,支持通过点击开关快速修改常用注册表设置,例如将 Win11 新版右键菜单恢复为经典的展开式菜单。

效果对比
效果对比

解压后以管理员身份运行 Dism++x64.exe,点击 系统优化>Explorer,开启 禁用 Win11 加入的新右键菜单,默认显示更多选项,并按提示重启资源管理器。

Dism++
Dism++

ContextMenuManager

ContextMenuManager 是由 @蓝点 Lilac 开发的右键菜单管理工具,支持可视化地增删、禁用、重命名右键菜单项,覆盖文件、文件夹、桌面等场景,并可直接定位到注册表或源文件路径。

效果对比
效果对比

解压后以管理员身份运行 ContextMenuManager.NET.4.0.exe,按需调整。

ContextMenuManager
ContextMenuManager

其中,GUID 锁 相当于在注册表 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked 下新建以菜单 GUID 命名的字符串(数值留空),即可隐藏该菜单,删除则恢复。

GUID 锁
GUID 锁

例如,想要隐藏右键菜单项 使用 Clipchamp 进行编辑({8AB635F8-9A67-4698-AB99-784AD929F3B4})、使用照片编辑({BFE0E2A4-C70C-4AD7-AC3D-10D1ECEBB5B4})、使用 Microsoft 画图进行编辑({2430F218-B743-4FD6-97BF-5C76541B4AE9})、在记事本中编辑({CA6CC9F1-867A-481E-951E-A28C5E4F01EA}),添加 GUID 锁定项目,重启资源管理器即可。2

Nilesoft Shell

Shell 是由 @Nilesoft 开发的右键菜单增强工具,可保留 Win11 新版菜单的外观,通过配置文件实现菜单项的高度自定义和美化,且不涉及注册表修改。

效果对比
效果对比

解压后以管理员身份运行 shell.exe,点击 Register 生效,Unregister 恢复。

Shell
Shell

生效后,可在任务栏按 Shift + 鼠标右键,点击 Shell>Directory,或直接进入软件解压目录修改配置文件,修改后需重新注册或重启资源管理器。软件目录结构如下:

Plaintext
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
Nilesoft Shell              
├─ imports               
│  ├─ develop.nss        # 开发工具菜单(VS Code、dotnet 命令等)
│  ├─ file-manage.nss    # 文件管理(复制路径、修改扩展名、属性等)
│  ├─ goto.nss           # 快速跳转系统文件夹
│  ├─ images.nss         # 菜单图标的 SVG 定义
│  ├─ modify.nss         # 修改 / 隐藏 / 移动原生菜单项
│  ├─ taskbar.nss        # 任务栏右键菜单增强
│  ├─ terminal.nss       # 终端子菜单(CMD、PowerShell 等)
│  └─ theme.nss          # 菜单外观主题
├─ LICENSE             
├─ readme.txt          
├─ shell.dll           
├─ shell.exe           
└─ shell.nss             # 主配置文件

Shell 配置的修改不涉及注册表,改错了改回文本即可。主配置文件是 shell.nss,各功能模块在 imports/ 目录下,可在记事本中编辑修改。配置默认英文,汉化版本可参考 我的自用设置。

modify、remove 用于修改现有菜单项,通过匹配现有菜单项的 title 与 find 属性来识别目标,找到后应用其他属性,主要修改 imports/modify.nss。

Plaintext
1
2
modify( find = value [property = value [...] ])
remove( find = value [property = value [...] ])

示例如下:

Plaintext
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
// 改标题和图标
modify(find='打开(O)' title='打开文件' image=icon.open_new_window)
modify(find='使用 Adobe Acrobat DC 打开' title='打开' image='C:\Program Files\Adobe\Acrobat DC\Acrobat\Acrobat.exe')

// 移到更多选项里
modify(find='打印' menu=title.more_options)

// 加分隔线并禁用
modify(find='上传到 PicList' sep=before enabled=false)

// 批量移除
remove(find='打印|旋转|"编辑(E)"')

// 按所在子菜单定位,只隐藏 “发送到” 里的 “文档”
remove(in='发送到(N)' find='文档')

find 为必填,in 可选,其余属性按需添加。

属性说明(加粗为默认值)
find匹配目标菜单项的标题:| 分隔符,* 通配符,! 排除符,"" 单词界定符
'foo' 包含 foo,'"foo"' 精确匹配单词 foo
'*foo' 以 foo 结尾,'foo*' 以 foo 开头
'!foo' 不包含 foo,'!"foo"' 不包含单词 foo
'!*foo' 不以 foo 结尾的单词,'foo*!' 不以 foo 开头的单词
'.exe' 等于 .exe,'!.exe' 不等于 .exe
`’.exe
in指定目标所在的现有子菜单
可重复出现,逐级深入子菜单,如 in='更多选项' in='发送到(N)'
与 find 配合使用,先按 in 定位到子菜单,再按 find 匹配目标
where是否处理该条目:true / false / 表达式
mode按选中类型显示:none / single / multi_unique / multi_single / multiple
type限定显示对象类型:| 分隔符,~ 排除符,默认接受除 taskbar 外的所有类型
* 任意类型、file 文件、directory / dir 文件夹、drive 驱动器
usb USB 闪存盘、dvd DVD 光驱、fixed 固定驱动器、vhd 虚拟硬盘
removable 可移动驱动器、remote 网络驱动器、back 所有背景
back.directory 文件夹背景、back.drive 驱动器背景
back.namespace 命名空间背景、desktop 桌面、namespace 命名空间
computer 我的电脑、recyclebin 回收站、taskbar 任务栏
title菜单项标题
image / icon菜单项图标:null / inherit / cmd / glyph / color / path
inherit:继承父菜单,image=inherit
cmd:命令提取,image='C:\Program Files\Adobe\Acrobat DC\Acrobat\Acrobat.exe
glyph:从 字形图库 获取字形编码,image=\ue249
color:指定色值生成纯色方块,image=#0078D4
path:创建 icons 目录或复用 imports/images.nss 内置别名
image=path.join(app.dir, 'icons\recycle_bin.ico
image=icon.open_new_window
vis / visibility菜单项可见性:hidden / normal / disable
sep / separator为菜单项添加分隔线:none、before / top、after / bottom、both
pos / position菜单项位置:auto / middle / top / bottom / 整数
menu将菜单项移到指定子菜单
enabled菜单项是否可点击:true / false

item、menu、separator 用于向右键菜单添加新条目,主要写在 imports/modify.nss 或自定义的 imports 文件中。

Plaintext
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
item( title = value [property = value [...] ])

menu( title = value [property = value [...] ])
{
	[ item() [...] ]
	[ menu(){} [...] ]
	[ separator [...] ]
	[ import 'path/to/import.nss' [...] ]
}

separator
separator( property = value [property = value [...] ])

示例如下:

Fallback
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
// 仅在文件夹背景显示,带图标
item(type='back' title='清空回收站' image=icon.delete cmd='powershell.exe' args='-NoProfile -Command "Clear-RecycleBin -Force"')

// 带管理员权限
item(type='back' title='重启资源管理器' admin cmd='taskkill.exe' args='/f /im explorer.exe & start explorer.exe')

// 子菜单
menu(type='back' title='磁盘工具' image=icon.settings)
{
	item(title='磁盘清理' cmd='cleanmgr.exe')
	separator
	item(title='磁盘管理' cmd='diskmgmt.msc')
}

title 或 image 至少设置一个,separator 没有必填属性。

属性说明(加粗为默认值)
title菜单项标题
image / icon菜单项图标:null / inherit / cmd / glyph / color / path
inherit:继承父菜单,image=inherit
cmd:命令提取,image='C:\Program Files\Adobe\Acrobat DC\Acrobat\Acrobat.exe
glyph:从 字形图库 获取字形编码,image=\ue249
color:指定色值生成纯色方块,image=#0078D4
path:创建 icons 目录或复用 imports/images.nss 内置别名
image=path.join(app.dir, 'icons\recycle_bin.ico
image=icon.open_new_window
type限定显示对象类型:| 分隔符,~ 排除符,默认接受除 taskbar 外的所有类型
* 任意类型、file 文件、directory / dir 文件夹、drive 驱动器
usb USB 闪存盘、dvd DVD 光驱、fixed 固定驱动器、vhd 虚拟硬盘
removable 可移动驱动器、remote 网络驱动器、back 所有背景
back.directory 文件夹背景、back.drive 驱动器背景
back.namespace 命名空间背景、desktop 桌面、namespace 命名空间
computer 我的电脑、recyclebin 回收站、taskbar 任务栏
where是否处理该条目:true / false / 表达式
mode按选中类型显示:none / single / multi_unique / multi_single / multiple
vis / visibility菜单项可见性:hidden / normal / disable / static / label
static 和 label 仅新建项可用
sep / separator为菜单项添加分隔线:none、before / top、after / bottom、both
pos / position菜单项位置:auto / middle / top / bottom / 整数
menu将菜单项移到指定子菜单
checked选择选项的类型:0(不勾选)/ 1(复选标记)/ 2(单选圆点)
default默认项以粗体显示:true / false
expanded是否移动所有直接子菜单项到父菜单:true / false
col / column是否创建一个新列:true / false
keys显示键盘快捷键
tip为当前菜单或项显示工具提示
cmd / command与菜单项关联的命令
args / arg传给 cmd 的命令行参数
invoke执行方式:0、single(执行一次)、1 / multiple(对每个选中项各执行一次)
window命令窗口的显示方式:hidden / show / visible / minimized / maximized
dir / directory执行命令的工作目录
admin是否以管理员权限执行命令:true / false
verb对选中文件的默认操作:
null 使用该文件类型的默认操作、open 打开文件或程序
openas 无关联程序时弹出打开方式对话框、runas 打开 UAC 或 “运行方式” 对话框
edit 用默认文本编辑器打开、explore 在目录指定的文件夹打开资源管理器
properties 打开属性窗口、print 用默认应用打印、find 开始搜索
wait是否等待命令完成:true / false

主题区块(imports/theme.nss)用于自定义右键菜单的布局和颜色。

Plaintext
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
theme
{
	// 主题名:auto、classic、white、black、modern
	name = "modern"

	// 视图模式:auto、compact、small、medium、large、wide
	view = view.compact

	// 暗色模式:true、false、default
	dark = default

	background
	{
		color = 颜色值
		opacity = 0 到 100

		// 背景效果:0 = 禁用,1 = 透明,2 = 模糊,3 = 亚克力
		effect = auto

		// 亚克力写法
		effect = [3, 色调颜色, 透明度]

		gradient
		{
			enabled = 布尔值

			// 线性渐变:[x1, x2, y1, y2]
			linear = [0, 100, 0, 0]

			// 径向渐变:[cx, cy, r, fx, fy]
			radial = [100, 100, 150, 100, 100]

			// 渐变停靠点:[偏移, 颜色]
			stop = [0.5, color.accent, 20]

			// 或多个停靠点
			stop = [
				[偏移, 颜色],
				[偏移, 颜色],
				[偏移, 颜色]
			]
		}
	}

	item
	{
		opacity = 0 到 100
		radius = 0 到 3

		// 前缀:auto、0 = 不显示、1 = 显示、2 = 忽略
		prefix = 1

		text
		{
			normal = 颜色值
			normal.disabled = 颜色值
			select = 颜色值
			select.disabled = 颜色值
		}

		back
		{
			normal = 颜色值
			normal.disabled = 颜色值
			select = 颜色值
			select.disabled = 颜色值
		}

		border
		{
			normal = 颜色值
			normal.disabled = 颜色值
			select = 颜色值
			select.disabled = 颜色值
		}

		padding
		{
			left = 数值
			top = 数值
			right = 数值
			bottom = 数值
		}

		margin
		{
			left = 数值
			top = 数值
			right = 数值
			bottom = 数值
		}
	}

	border
	{
		enabled = 布尔值
		size = 0 到 10
		color = 颜色值
		opacity = 数值
		radius = 数值

		padding
		{
			left = 数值
			top = 数值
			right = 数值
			bottom = 数值
		}
	}

	shadow
	{
		enabled = 布尔值
		size = 0 到 30
		color = 颜色值
		opacity = 0 到 100
		offset = 0 到 30
	}

	font
	{
		size = ≥ 6
		name = "tahoma"
		weight = 1 到 9
		italic = 0
	}

	separator
	{
		size = 0 到 40
		color = 颜色值
		opacity = 数值

		margin
		{
			left = 数值
			top = 数值
			right = 数值
			bottom = 数值
		}
	}

	symbol
	{
		normal = 颜色值
		normal.disabled = 颜色值
		select = 颜色值
		select.disabled = 颜色值

		// 或单独设置
		chevron
		{
			normal = 颜色值
			normal.disabled = 颜色值
			select = 颜色值
			select.disabled = 颜色值
		}

		checkmark
		{
			normal = 颜色值
			normal.disabled = 颜色值
			select = 颜色值
			select.disabled = 颜色值
		}

		bullet
		{
			normal = 颜色值
			normal.disabled = 颜色值
			select = 颜色值
			select.disabled = 颜色值
		}
	}

	image
	{
		enabled = 布尔值

		color = [颜色1, 颜色2, 颜色3]
		gap = 数值
		glyph = "字体名"   // 默认字形的字体
		scale = 布尔值
		// 对齐方式:0 = 只显示勾选标记,1 = 只显示图标,2 = 同时显示图标和勾选标记
		align = 数值
	}

	layout
	{
		// 从右到左布局,用于中东语言
		rtl = 布尔值

		// 子菜单对齐偏移
		popup = -20 到 20
	}
}

设置区块(shell.nss)用于存储 Shell 的全局默认值,控制菜单弹出延迟、工具提示样式,以及是否允许修改或新建菜单项。

Plaintext
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
settings
{
    // 菜单显示延迟,0 到 4000
    showdelay = 200

    // 阻止与这些窗口或进程交互
    exclude
    {
        where = 布尔值
        window = 窗口名称
        process = 进程名称
    }

    tip = true
    // 或
    tip
    {
        enabled = true

        // normal = [背景色, 文字色]
        normal = [default, default]

        // primary = [背景色, 文字色]
        primary = [#000, #fff]

        // info = [背景色, 文字色]
        info = [#88f, #fff]

        // success = [背景色, 文字色]
        success = [#8f8, #fff]

        // warning = [背景色, 文字色]
        warning = [#ff8, #fff]

        // danger = [背景色, 文字色]
        danger = [#f88, #fff]

        // 最大宽度,200 到 2000
        width = 400

        // 透明度,0 到 100
        opacity = 100

        // 圆角大小,0 到 3
        radius = 1

        time = 1.5

        padding = [8, 4]
    }

    // 禁用/启用 modify 项处理
    modify
    {
        enabled = 布尔值
        image = [0 = 禁用, 1 = 启用, 2 = 自动重设图标]

        // 是否允许修改标题
        title = 布尔值

        // 是否允许修改可见性
        visibility = 布尔值

        // 是否允许修改父菜单
        parent = 布尔值

        // 是否允许修改位置
        position = 布尔值

        // 是否允许添加分隔线
        separator = 布尔值

        // 自动设置图标和分组
        auto = 布尔值
    }

    // 禁用/启用 new 项处理
    new
    {
        enabled = 布尔值
        // 禁用/启用图标
        image = 布尔值
    }
}

SmartContextMenu

SmartContextMenu 是由 @AlexanderPro 开发的窗口增强工具,通过 Ctrl + 鼠标右键 可为任意窗口(包括游戏、控制台等无标题栏的应用)实现置顶、透明度调节、卷起、隐藏等窗口操作。

效果图
效果图

解压后以管理员身份运行 SmartContextMenu.exe,程序将驻留系统托盘;在任意窗口按 Ctrl + 鼠标右键,即可呼出增强菜单;右键托盘图标可打开设置,自定义快捷键、启用或禁用特定功能。

SmartContextMenu
SmartContextMenu

留言交流