几年前,我看到有人恶作剧,将.exe
文件扩展名与 Internet Explorer 关联。这使得每次有人想要启动程序时都会打开 Internet Explorer。
不幸的是,我忘了这是怎么做的。我尝试使用Default Programs > Set Associations
控制面板工具,但它没有列出.exe
。
如何设置此文件关联?也许更重要的是,如何取消设置它?
答案1
当做这样的“恶作剧”时,仅仅遵循分步教程或批处理脚本是不够的;最好了解实际数据的存储方式——这样以后恢复起来就更容易了。
所有文件关联都保存在注册表中,可以使用注册表编辑器或者登记。shell 在 下查找它们,它是(系统范围)和(用户本地)HKEY_CLASSES_ROOT
的合并视图。HKEY_LOCAL_MACHINE\Software\Classes
HKEY_CURRENT_USER\Software\Classes
- [
HKEY_CLASS_ROOT
]- [
.txt
]- (默认)=“
txtfile
” – 指向 HKCR 下的另一个键的指针
- (默认)=“
- [
txtfile
]- (默认)=“
Text Document
” – Explorer 中显示的文本描述 - [
shell
] – 用于双击和上下文菜单的操作- (默认)=(没有设置)– 双击时使用的操作;默认为“
open
” - [
open
]- (默认)=(没有设置)– 上下文菜单中显示的标签;默认为“
Open
” - [
command
]- (默认)=“
%SystemRoot%\system32\NOTEPAD.EXE %1
”
- (默认)=“
- (默认)=(没有设置)– 上下文菜单中显示的标签;默认为“
- (默认)=(没有设置)– 双击时使用的操作;默认为“
- (默认)=“
- [
对于大多数扩展来说,该值指向HKCR\.extn\(Default)
文件类型同一 HKCR 下的键;例如,.exe
指向HKCR\exefile
。
(不过,在极少数情况下,所有信息都直接位于扩展的键下,并包含描述。这些似乎是HKCR\.extn\(Default)
非常虽然很少见——可能是 Windows 9x 或 3.x 的残留……)
进行备份。reg save HKLM\Software\Classes hklm-classes.hiv
另外,请记住命令提示符不关心扩展名;如果您尝试运行可执行程序,无论其命名方式或扩展名与什么关联,它都将始终运行。
答案2
尝试这个:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.exe]
@="exefile"
"Content Type"="application/x-msdownload"
[HKEY_CLASSES_ROOT\.exe\PersistentHandler]
@="{098f2470-bae0-11cd-b579-08002b30bfeb}"