问题:如何使用 .reg 文件彻底删除文件类型关联?我尝试过删除,HKEY_CLASSES_ROOT\myextension_auto_file
但显然还不够。
背景:在 Windows Vista 上,我有一个 .reg 文件,它成功地将一种文件类型与另一个始终需要传递一些参数的应用程序关联起来(这就是为什么仅右键单击关联是不够的);参见 .reg 文件)。然而,由于某种原因,.reg 文件仅适用于以前未关联的文件扩展名,因此我希望向其中添加一些命令,以首先删除给定的文件类型关联。
答案1
HKEY_CLASSES_ROOT
我看到您在问题中使用那个 reg 文件写入。此配置单元是HKEY_LOCAL_MACHINE\Software\Classes
和的合并视图HKEY_CURRENT_USER\Software\Classes
。
您的文件仅适用于以前未关联的文件的原因是写入HKEY_CLASSES_ROOT
重定向到相应的键HKEY_LOCAL_MACHINE
(系统默认值和所有用户设置的配置单元)。但是,您会遇到一个问题,因为文件关联设置在HKEY_CURRENT_USER
(包含每个用户的设置)覆盖系統默認值。
此外,如果扩展程序由“默认程序”关联控制,则其文件关联信息存储在 中HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\<.ext>
。您可以通过检查该键是否存在来检查扩展程序是否具有此关联。
你可以编辑你的 .reg 文件,使之适用于任何文件,包括之前关联的文件,只需将其复制到两个都 HKEY_LOCAL_MACHINE
和。类似地,您可以通过删除两个配置单元中的相应键(包括位置)HKEY_CURRENT_USER
来删除关联。FileExts
用于删除特定扩展的关联的工作 .reg 文件如下所示(删除.blerg
关联):
Windows Registry Editor Version 5.00
; Created with Default Programs Editor
; http://defaultprogramseditor.com/
; Delete Extension
[-HKEY_LOCAL_MACHINE\Software\Classes\.blerg]
[-HKEY_CURRENT_USER\Software\Classes\.blerg]
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.blerg]
然而,如果你不想学习注册表内部知识和 Windows 文件关联的各种神秘方面,我建议你使用默认程序编辑器进行这些更改 - 您甚至可以将操作导出到 .reg 文件,这似乎完全符合您的需求。
对于您来说,这很简单,只需单击File Type Settings
,然后单击Delete an extension
。选择扩展,而不是保存到注册表,按下Delete Extension
按钮上的小箭头,然后单击Save to .reg file...
。这将生成此操作的完整且带注释的 .reg 文件,您可以将其保存或分发到其他机器。
答案2
这个问题似乎有很多值得怀疑的假设。
首先,为什么要使用 .reg 文件来删除文件关联?为什么不直接通过用户界面来删除?您是否在许多工作站上执行此操作?
其次,我不明白为什么您链接的 .reg 文件只能与以前未关联的文件扩展名一起使用。
无论如何,要使用 .reg 文件删除某个键,请在键名前添加一个连字符。要删除某个值,请将其设置为连字符。全部拼写出来这里。
要删除文件关联,您需要删除文件扩展名的键,例如
[-HKEY_CLASSES_ROOT\.dat]
仅此一项即可阻止打开文件,但为了完整性,您还应该删除类型名称的键,该键是文件扩展名键下的默认值。例如:
[-HKEY_CLASSES_ROOT\dat_auto_file]