更换Python版本后配置注册表.pyw右键仍无“用IDLE编辑”选项
右键.pyw文件不显示“用IDLE编辑”选项的核心成因
- 注册表Shell项层级配置不全
Windows资源管理器加载右键菜单的逻辑是逐层校验对应程序标识下的Shell路径配置:只有当Shell下的自定义菜单项本身配置了默认值(即菜单实际展示的文本)、且子级command路径关联了合法可执行命令时,对应选项才会被正常渲染。
你目前仅修改了Python.NoConFile路径下command子项的内容,但很可能没有对上层的Edit with IDLE 3.8 (64-bit)项本身做基础配置——对比可正常显示菜单的Python.File路径,会发现同名称Shell项的默认值已经设置为对应菜单文本,而Python.NoConFile下的同名项可能仅存在空的command结构,无法满足菜单加载的校验规则。 - 新式文件关联的优先级覆盖
Windows 10 1809及后续版本中,用户手动指定的文件默认打开程序会被存储在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pyw路径的UserChoice项中。只要该路径存在有效配置,系统就会完全覆盖HKEY_CLASSES_ROOT下Python.NoConFile关联的全部自定义右键菜单,不会再加载传统注册表路径下注册的菜单项;如果.py文件的同路径下没有手动改过默认打开程序的UserChoice配置,就会正常加载Python注册的IDLE选项,这也是.py文件能正常显示、.pyw文件不显示的典型触发特征。 - 注册表项权限异常
手动通过管理员权限的注册表编辑器新建的菜单项,经常会出现权限不继承父项的问题:普通用户身份运行的资源管理器(explorer.exe)没有权限读取你手动创建的Edit with IDLE 3.8 (64-bit)项的配置内容,就会直接跳过该选项不展示。而.py文件对应的Python.File下的菜单项是Python安装程序原生创建的,权限为系统默认继承状态,可被资源管理器正常读取渲染。
内容的提问来源于stack exchange,提问作者D_00
相关产品推荐
相关产品推荐

