如何为Windows系统.hex文件添加专属右键菜单 能否通过Python实现
实现方法
手动配置正确步骤
你找不到HKEY_CLASSES_ROOT下的.hex相关配置,是因为当前系统没有任何程序关联过.hex后缀,用下面的方法不需要提前配置文件关联,也不会修改.hex文件的默认打开方式:
- 打开注册表编辑器(运行输入
regedit回车),定位到路径HKEY_CLASSES_ROOT\SystemFileAssociations - 在此路径下新建项,命名为
.hex,如果已经存在就直接进入 - 在
.hex项下面新建子项,命名为shell - 在
shell下面新建子项,名称就是你右键菜单要显示的文字,比如处理Hex文件 - 在上一步新建的菜单项下面再建子项,命名为
command,修改command的默认值为你的脚本启动命令,示例:
pythonw.exe "C:\你的脚本完整路径\script.py" "%1"
说明:
pythonw.exe用来替代python.exe,可以避免运行脚本时弹出黑色控制台窗口;%1是系统预留参数,会自动替换为你选中的.hex文件的绝对路径,作为参数传给你的Python脚本。
配置完成后刷新几次文件资源管理器,右键点击.hex文件就能看到新增的菜单,其他类型文件不会显示。
Python脚本实现配置
完全可以用Python脚本完成上述注册表修改操作,直接调用系统内置的winreg模块即可,运行脚本时需要右键选择以管理员身份运行,否则没有权限修改注册表。
示例代码:
import winreg import sys # 配置参数 MENU_NAME = "处理Hex文件" # 右键菜单显示的名称 SCRIPT_PATH = r"C:\你的脚本路径\script.py" # 你的Python脚本完整路径 # 自动获取当前解释器的pythonw路径,也可以手动写死路径 PYTHONW_PATH = sys.executable.replace("python.exe", "pythonw.exe") if __name__ == "__main__": # 打开SystemFileAssociations路径 root_key = winreg.OpenKey(winreg.HKEY_CLASSES_ROOT, r"SystemFileAssociations", 0, winreg.KEY_ALL_ACCESS) # 创建.hex项 hex_key = winreg.CreateKey(root_key, ".hex") # 创建shell项 shell_key = winreg.CreateKey(hex_key, "shell") # 创建自定义菜单项 menu_key = winreg.CreateKey(shell_key, MENU_NAME) # 创建command项 command_key = winreg.CreateKey(menu_key, "command") # 设置command的值 command_value = f'"{PYTHONW_PATH}" "{SCRIPT_PATH}" "%1"' winreg.SetValueEx(command_key, "", 0, winreg.REG_SZ, command_value) # 关闭所有注册表句柄 winreg.CloseKey(command_key) winreg.CloseKey(menu_key) winreg.CloseKey(shell_key) winreg.CloseKey(hex_key) winreg.CloseKey(root_key) print("右键菜单添加完成")
如果要删除已添加的菜单,直接删除HKEY_CLASSES_ROOT\SystemFileAssociations\.hex\shell下对应的菜单项即可,也可以用Python的winreg.DeleteKey接口实现自动删除。
内容的提问来源于stack exchange,提问作者mmvgm1
相关产品推荐
相关产品推荐

