You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Windows系统.hex文件添加专属右键菜单 能否通过Python实现

实现方法

手动配置正确步骤

你找不到HKEY_CLASSES_ROOT下的.hex相关配置,是因为当前系统没有任何程序关联过.hex后缀,用下面的方法不需要提前配置文件关联,也不会修改.hex文件的默认打开方式:

  1. 打开注册表编辑器(运行输入regedit回车),定位到路径 HKEY_CLASSES_ROOT\SystemFileAssociations
  2. 在此路径下新建项,命名为.hex,如果已经存在就直接进入
  3. 在.hex项下面新建子项,命名为shell
  4. 在shell下面新建子项,名称就是你右键菜单要显示的文字,比如处理Hex文件
  5. 在上一步新建的菜单项下面再建子项,命名为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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 22:24:05