【批处理】添加右键再添加右键
本帖最后由 hualy 于 2024-6-8 11:48 编辑基础
1. 注册表的结构
Windows注册表由多个层次结构的键(Key)和值(Value)组成。
主要的顶层键(也叫根键)包括:
• HKEY_CLASSES_ROOT(HKCR):存储文件类型和文件扩展名关联。
• HKEY_CURRENT_USER(HKCU):存储当前用户的配置。
• HKEY_LOCAL_MACHINE(HKLM):存储所有用户和系统级别的配置。
• HKEY_USERS(HKU):存储所有用户的配置。
• HKEY_CURRENT_CONFIG(HKCC):存储当前硬件配置文件信息。
2. 键(Keys)和子键(Subkeys)
每个键类似于文件系统中的文件夹,可以包含子键。子键可以嵌套多层,形成一个树状结构。
3. 值(Values)
每个键可以包含一个或多个值,每个值有一个名称和数据类型。
常见的数据类型包括:
• REG_SZ:字符串值
• REG_DWORD:32位数字值
• REG_QWORD:64位数字值
• REG_BINARY:二进制数据
• REG_MULTI_SZ:多字符串值
• REG_EXPAND_SZ:可扩展的字符串值(包含环境变量)
4. 注册表编辑器
Windows提供了一个图形界面工具“注册表编辑器”(Regedit),用于查看和编辑注册表。你可以通过以下方式打开注册表编辑器:
1. 按下 Win + R 打开运行对话框。
2. 输入 regedit 并按下 Enter 键。
5. 常见操作
• 查看键和值:在注册表编辑器中浏览树状结构,展开键查看子键和值。
• 创建键和值:右键点击任意键,选择“新建”来创建新的键或值。
• 修改值:双击某个值,编辑其数据内容。
• 删除键和值:右键点击需要删除的键或值,选择“删除”。
6.右键菜单位置
情形注册表位置
右键空白区域桌面空白区域HKEY_CLASSES_ROOT\DesktopBackground\Shell
一般空白区域管理员HKEY_CLASSES_ROOT\Directory\Background\shell
普通用户HKEY_CURRENT_USER\Software\Classes\directory\Background\shell
右键文件夹管理员HKEY_CLASSES_ROOT\Directory\shell
普通用户HKEY_CLASSES_ROOT\Directorylshell
右键文件管理员HKEY_CLASSES_ROOT\*\shell
普通用户HKEY_CURRENT_USER\Software\Classes\*\shell
参考:
win10 给右键文件、文件夹、桌面菜单添加程序(项)
使用注册表编辑win10鼠标右键菜单,详细解释(右键文件夹、文件以及右键空白区域下三种情况)
相关文件内容
add_context_menu.bat
@echo off
:: 关闭命令回显
echo Checking if "Add to Context Menu" option exists...
:: 检查是否存在右键菜单项
REG QUERY "HKCU\Software\Classes\*\shell\AddToContextMenu" >nul 2>&1
if %errorlevel%==0 (
echo "Add to Context Menu" option already exists.
) else (
echo Adding "Add to Context Menu" option...
:: 添加右键菜单项
REG ADD "HKCU\Software\Classes\*\shell\AddToContextMenu" /ve /d "Add to Context Menu" /f
REG ADD "HKCU\Software\Classes\*\shell\AddToContextMenu\command" /ve /d "\"%~dp0handle_add_to_context_menu.bat\" \"%%1\"" /f
echo "Add to Context Menu" option added successfully.
)
pause
handle_add_to_context_menu.bat
@echo off
:: 关闭命令回显
if "%1"=="" (
echo No file specified.
pause
exit /b
)
:: 获取传递的文件路径
set "filePath=%1"
:: 获取文件名(不含路径)
set "fileName=%~nx1"
:: 获取文件的目录路径
set "fileDir=%~dp1"
:: 输出将要添加到注册表的信息
echo Adding file information to the registry: %filePath%
:: 添加文件路径到注册表
REG ADD "HKCR\*\shell\%fileName%" /ve /d "%fileName%" /f
REG ADD "HKCR\*\shell\%fileName%" /v "icon" /t REG_SZ /d"%filePath%" /f
REG ADD "HKCR\*\shell\%fileName%\command" /ve /d"\"%filePath%\" \"%%1\"" /f
echo File information added successfully
:: 输出提示信息,告知用户文件信息已成功添加到注册表
pause
用法
放在同一文件夹
1、成功运行add_context_menu.bat
双击add_context_menu.bat
运行成功后,右键任意文件会出现zadd contextmenu选项:
2、添加自己需要的常用.exe
如下步骤:
弹出以下情况为添加成功:
此时右键文件会出现自己添加的.exe文件:python.exe
3、尝试能否正常使用
使用我之前写的python签到脚本来试验一波
签到成功,说明所添加的python.exe能够正常使用
扩展
如果想在其他地方右键添加,如文件夹、空白区域、桌面的右键添加,只要把handle_add_to_context_menu.bat用编辑器打开,选中HKCR\*\shell然后Ctrl + H,再将替换的内容设置为下表的位置,然后点击全部替换即可
情形注册表位置
右键空白区域桌面空白区域HKEY_CLASSES_ROOT\DesktopBackground\Shell
一般空白区域管理员HKEY_CLASSES_ROOT\Directory\Background\shell
普通用户HKEY_CURRENT_USER\Software\Classes\directory\Background\shell
右键文件夹管理员HKEY_CLASSES_ROOT\Directory\shell
普通用户HKEY_CLASSES_ROOT\Directorylshell
右键文件管理员HKEY_CLASSES_ROOT\*\shell
普通用户HKEY_CURRENT_USER\Software\Classes\*\shell
土豪通道:
密码:52pojie 春天的萌动 发表于 2024-6-8 18:07
写的非常详细。有心了。有没有什么办法能强制删除AMD显卡的桌面右键菜单亚。设置过后,开机重启又出现了。
找到对应的路径将相关项改名并且取消权限,嫌麻烦的也可以使用诸如:EasyMenu、ContextMenuManager、甚至是HiBitUninstaller等进行相关注册表项的删除
另外告诉你个曲线的方法,可以在同级键值中加入
“Extended”这个空键值;这是告诉系统只有当我按下SHIFT键时才显示该快捷菜单否则一律隐藏
学习了,受教{:1_893:} 学习了,已记录,下次需要时,就可以用了。 强啊~ 这样电脑上的绿色版软件也可以添加到右键了 这个好 用得到 感谢分享,学习了 已使用,添加不成功,为什么BAT提示已存在一个问题 long88888888 发表于 2024-6-8 12:28
已使用,添加不成功,为什么BAT提示已存在一个问题
你可以看一下注册表的位置,是不是已经存在了,如果不行,可以删除再添加一下 能否反过来搞一个查询exe文件已经创建的右键注册表位置,方便删除多余的右键菜单 cxqdly 发表于 2024-6-8 12:55
能否反过来搞一个查询exe文件已经创建的右键注册表位置,方便删除多余的右键菜单
其实直接在注册表那就可以删的,明白他们在哪个位置就行了