有没有直接的方法可以替换 Windows 11 中的 notepad.exe?

有没有直接的方法可以替换 Windows 11 中的 notepad.exe?

一周多前升级到 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名为UseFilterdword数据非零的值时,才适用于可执行文件全名的子项扩展。如果UseFilter可执行文件名的子项中不存在该值,或者该值存在但类型或大小错误或为零,则具有此文件名的所有可执行文件都具有相同的“图像文件执行选项”,并且该函数将坚持使用该文件名的子项。假设仅用于文件名的子项具有正确配置的UseFilter,则它可能具有任意数量的子项,每个子项都用于不同的路径名。子项的名称无关紧要。重要的是子项是否具有其数据与可执行文件的全名匹配的REG_SZFilterFullPath

这是我的情况,我确实有UseFilter一些带有路径的子项。删除这些子项即可解决问题。

注意:如果需要,可以使用以下命令删除记事本商店应用程序:

Get-AppxPackage | Select-Object -ExpandProperty PackageFullName | Select-String notepad | Remove-AppxPackage

相关内容