一周多前升级到 Win 11 后,我发现用图像文件执行(即HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe
)替代记事本的功能不再起作用;我所有的文本文件都是在记事本中打开的,而不是像 Win 10 中那样在 Notepad2 中打开。
我检查了我的注册表,发现 notepad.exe 的 IFE 仍然存在。但是,文本文件仍然在记事本中打开。因此,我继续检查HKCU\Software\Microsoft\Windows\CurrentVersion\App Paths\notepad.exe
并用我首选的文本应用程序 Notepad2 替换了相关值。之后,在任何终端窗口中输入notepad.exe
都会打开 Notepad2,但双击文本文件仍然会在记事本中打开它们。
因此,我的问题是,是否有任何简单的方法可以让 notepad2.exe(或任何其他文本编辑器)替换 notepad.exe,就像在早期版本的 Windows 中一样?
答案1
我发现卸载 Windows 应用商店记事本应用会恢复 Win10 及更早版本的行为。
答案2
不确定这是否是您想要的解决方案,但作为一种解决方法,请转到 Win11 中的“默认应用程序”设置,并将扩展名 .txt 的默认操作更改为“使用 Notepad2 打开”。其他扩展名也可以根据需要进行更改。
答案3
另外,设置FilterFullPath
到您的编辑器。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe]
"Debugger"="C:\\ProgramData\\scoop\\apps\\notepad3\\current\\Notepad3.exe /z"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe\0]
"FilterFullPath"="C:\\ProgramData\\scoop\\apps\\notepad3\\current\\Notepad3.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe\1]
"FilterFullPath"="C:\\ProgramData\\scoop\\apps\\notepad3\\current\\Notepad3.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe\2]
"FilterFullPath"="C:\\ProgramData\\scoop\\apps\\notepad3\\current\\Notepad3.exe"
答案4
结论
如果删除 Microsoft Store Notepad 没有帮助,您可以reg delete "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /f
以管理员身份运行以彻底清理重定向记录,然后重新安装notepad2
以以所需的形式重新创建记录。
细节
这个问题已经够让我烦恼的了,所以我决定深入挖掘一下,用户 Chino Chang 的回答确实有道理。
有很好的描述如何图像文件执行选项链接文章中的方法有效。重点是现在键UseFilter
下有一个值Image File Execution Options/filename
,如果设置了该值,则并非所有值notepad.exe
都会重定向到您的子键,而只会重定向到子键中指定的值。由于 Microsoft Store 似乎没有指定,因此不会重定向。
6.1 版扩展了该方案,以根据为可执行文件提供的全名进行区分。扩展有点复杂,因为整个路径名本身当然不能是子项。如果仅用于文件名的子项包含特定值(以显示扩展适用)和合适的子项(包含字符串数据与可执行文件的全名匹配的特定值),则该函数将返回更深的子项。仅当文件名的子项包含
REG_DWORD
名为UseFilter
其dword
数据非零的值时,才适用于可执行文件全名的子项扩展。如果UseFilter
可执行文件名的子项中不存在该值,或者该值存在但类型或大小错误或为零,则具有此文件名的所有可执行文件都具有相同的“图像文件执行选项”,并且该函数将坚持使用该文件名的子项。假设仅用于文件名的子项具有正确配置的UseFilter
,则它可能具有任意数量的子项,每个子项都用于不同的路径名。子项的名称无关紧要。重要的是子项是否具有其数据与可执行文件的全名匹配的REG_SZ
值FilterFullPath
这是我的情况,我确实有UseFilter
一些带有路径的子项。删除这些子项即可解决问题。
注意:如果需要,可以使用以下命令删除记事本商店应用程序:
Get-AppxPackage | Select-Object -ExpandProperty PackageFullName | Select-String notepad | Remove-AppxPackage