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

Pet*_*son 16 windows windows-7 file-association

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

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

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

use*_*686 20

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

所有文件关联都保存在注册表中,可以使用regeditreg进行编辑。shell 在 下查找它们HKEY_CLASSES_ROOT,这是HKEY_LOCAL_MACHINE\Software\Classes(系统范围)和HKEY_CURRENT_USER\Software\Classes(用户本地)的合并视图。

  • [ HKEY_CLASS_ROOT]
    • [ .txt]
      • (默认) = " txtfile" – 指向 HKCR 下另一个键的指针
    • [ txtfile]
      • (默认) = " Text Document" – 显示在资源管理器中的文本描述
      • [ shell] – 用于双击和上下文菜单的操作
        • (default) = (not set) – 双击时使用的动作;默认为“ open
        • [ open]
          • (default) = (not set) – 显示在上下文菜单中的标签;默认为“ Open
          • [ command]
            • (默认) = " %SystemRoot%\system32\NOTEPAD.EXE %1"

对于大多数扩展,该值指向同一 HKCR 下的文件类型键;例如,指向。HKCR\.extn\(Default).exeHKCR\exefile

(不过,在极少数情况下,所有信息都直接位于扩展名的键下,并包含描述。不过,这些似乎非常罕见——可能是 Windows 9x 或 3.x 的遗留物......)HKCR\.extn\(Default)

进行备份。reg save HKLM\Software\Classes hklm-classes.hiv另外,请记住,命令提示符不关心扩展;如果您尝试运行一个可执行程序,无论它如何命名,或者它的扩展名与什么相关联,它都将始终运行。