如何将 .exe 文件扩展名与 Windows 中的程序关联?

如何将 .exe 文件扩展名与 Windows 中的程序关联?

几年前,我看到有人恶作剧,将.exe文件扩展名与 Internet Explorer 关联。这使得每次有人想要启动程序时都会打开 Internet Explorer。

不幸的是,我忘了这是怎么做的。我尝试使用Default Programs > Set Associations控制面板工具,但它没有列出.exe

如何设置此文件关联?也许更重要的是,如何取消设置它?

答案1

当做这样的“恶作剧”时,仅仅遵循分步教程或批处理脚本是不够的;最好了解实际数据的存储方式——这样以后恢复起来就更容易了。

所有文件关联都保存在注册表中,可以使用注册表编辑器或者登记。shell 在 下查找它们,它是(系统范围)和(用户本地)HKEY_CLASSES_ROOT的合并视图。HKEY_LOCAL_MACHINE\Software\ClassesHKEY_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}"

相关内容