如何在HKEY_CURRENT_USER根项下为.url(互联网快捷方式)文件的右键菜单添加自定义选项
如何在HKEY_CURRENT_USER根项下为.url(互联网快捷方式)文件的右键菜单添加自定义选项
你好呀!针对你想给.url互联网快捷方式的右键菜单添加自定义选项(而且只针对当前用户HKEY_CURRENT_USER)的问题,我来给你说个靠谱的解决办法~
首先,你之前尝试的路径没生效,核心原因是没找对.url文件对应的正确ProgID注册表项。.url文件的关联ProgID是InternetShortcut,所以正确的base_path应该是:
SOFTWARE\Classes\InternetShortcut\shell\NewItem
完整的代码示例(适配你的现有逻辑)
把你原来的代码里的base_path替换成上面这个路径就行,完整代码大概是这样:
import winreg as reg # 正确的HKEY_CURRENT_USER下的路径 base_path = r"SOFTWARE\Classes\InternetShortcut\shell\NewItem" # 创建主项并设置显示文本 with reg.CreateKey(reg.HKEY_CURRENT_USER, base_path) as main_key: reg.SetValueEx(main_key, 'MUIVerb', 0, reg.REG_SZ, 'New Item') # 创建command子项并设置执行命令 with reg.CreateKey(main_key, 'command') as cmd_key: reg.SetValue(cmd_key, '', reg.REG_SZ, r'"C:\...\app.exe" "%1"')
为什么你之前的尝试没成功?
- 你试的
SOFTWARE\Classes\.url\shell\NewItem:.url这个扩展名项其实只是指向了InternetShortcut这个ProgID,系统实际读取的是ProgID对应的右键菜单配置,所以直接操作这个路径不会生效。 - 你试的
SOFTWARE\Classes\InternetShortcut\shell:这个路径少了最后的NewItem子项,我们需要给自定义选项单独建一个子项来存放配置,所以路径不完整。
额外小提示
修改完注册表之后,你可能需要重启文件资源管理器(可以在任务管理器里结束explorer.exe进程再重新启动),或者注销当前用户再重新登录,才能让右键菜单的修改生效哦。
内容来源于stack exchange
相关产品推荐
相关产品推荐

