如何使用Python winreg模块在Windows注册表中创建子项?
修正后的注册表子项创建代码
你的代码错误在于直接在Directory\shell键下设置键值,而非创建目标子项。要实现截图对应的注册表结构(添加右键菜单关联程序),需要按标准注册表结构先创建子项,再设置对应值,以下是正确代码:
import winreg as rg # 打开HKEY_CLASSES_ROOT\Directory\shell键,获取写入权限 with rg.OpenKey(rg.HKEY_CLASSES_ROOT, "Directory\\shell", 0, rg.KEY_WRITE) as shell_key: # 在shell键下创建名为IFO/dr的子项 with rg.CreateKeyEx(shell_key, "IFO/dr", 0, rg.KEY_WRITE) as ifo_dr_key: # 设置该子项的默认值(右键菜单显示的自定义名称) rg.SetValueEx(ifo_dr_key, "", 0, rg.REG_SZ, "批量重命名文件夹") # 在IFO/dr子项内创建command子项(右键菜单执行逻辑的标准子项) with rg.CreateKeyEx(ifo_dr_key, "command", 0, rg.KEY_WRITE) as cmd_key: # 设置command子项的默认值为目标程序路径 rg.SetValueEx(cmd_key, "", 0, rg.REG_SZ, r"F:\IFO\dist\rename_folder.exe")
关键说明:
- 用
with语句自动管理注册表键的关闭,避免资源泄漏 - 遵循Windows右键菜单的注册表标准结构:
Directory\shell\[自定义子项]\command - 空字符串名称的键值为对应子项的默认值,分别用来定义右键菜单显示文字、程序执行路径
内容的提问来源于stack exchange,提问作者FAB TECH
相关产品推荐
相关产品推荐

