在 Windows 7 中,如果我已经将某个程序(例如Notepad2.exe
)与某个文件类型关联,则.txt
移动路径Notepad2.exe
(例如移动文件夹)会破坏该关联。我遇到的问题是,我没有找到修复该关联的方法。
选择文件类型关联的常规方法(通过右键单击 > 属性或通过控制面板)不起作用。当您到达“选择要用于打开此文件的程序”窗口时,您可以尝试浏览所需的程序.exe
,但在将其指向新路径后,当您返回到“选择要用于打开此文件的程序:”窗口时,该程序Notepad2.exe
实际上不会出现在那里。
如果您将其重命名Notepad2.exe
为其他名称,例如,Notepad2a.exe
那么您可以将其关联为正常名称。因此,问题显然在于 Windows 假定名称标识了.exe
程序。由于它显然记住了旧路径,因此Notepad2.exe
可以将此行为解释为默默抱怨它不想记住两个Notepad2.exe
具有不同路径的 s。
使用注册表我尝试删除剩余的关联Notepad2.exe
(例如,使用此答案https://superuser.com/a/49617/223560)。我还调整了 MRU 列表的注册表项以删除对它的提及。但这还不足以让 Windows“忘记”它。由于这是一个便携式应用程序,因此没有卸载程序可以帮助 Windows 忘记它。
有办法解决这个问题吗?更改名称Notepad2.exe
或创建具有不同名称的第二个副本/快捷方式对我来说不是一个可接受的解决方案。我想让它像正常情况下一样工作。
编辑:
在注册表中四处查看会得到一些线索。下面的注册表项OpenWithList
包含具有类似值的项Notepad2.exe
--- ,只有名称,没有路径。下面的注册表中UserChoice
有一个Progid
具有值的项Applications\Notepad2.exe
。这看起来不像是路径,我不确定 Windows 如何确定它对应的路径。
答案1
我好像找到了:
HKEY_CLASSES_ROOT\Applications\Notepad2.exe\shell\open\command
将此键编辑为新路径。
答案2
我将使用注册表来修复此问题。
我们首先找到相关的文件类型
HKEY_CLASSES_ROOT\.txt
查看此密钥,您将发现它与另一密钥相关联
HKEY_CLASSES_ROOT\txtfile
继续往下看,你会看到控制打开哪个程序的键
HKEY_CLASSES_ROOT\txtfile\shell\open\command