在 Windows 7 中,是否可以拥有具有唯一描述名称的不同文件扩展名,但所有操作都相同,而无需在 Windows 注册表中重复所有操作(针对每个扩展名)?
作为一个简单的示例,有以下文件扩展名和说明:
File extension: .txt
Description: "Text File"
File extension: .no
Description: "No Way"
File extension: .yes
Description: "Absolutely"
我所说的“描述”是指 Windows 在 Windows 资源管理器和本机打开/保存对话框中的类型列中显示的描述。
所有三个扩展都有相同的打开、编辑、打印、打印到等上下文菜单命令(操作)。
如果您同意所有扩展的所有描述性名称都相同,那么这很容易实现,但这不是我想要的。
我可以手动编辑 Windows 注册表来完成此操作。
请注意,我希望避免“用户选择”覆盖,但如果这是完成此操作的要求,那就这样吧。
答案1
正常创建文件类型HKLM\SOFTWARE\Classes\my_yes_file
,然后创建shell
子项作为符号链接指向\MACHINE\SOFTWARE\Classes\txtfile\shell
。
Windows 通过以下方式支持注册表中的符号链接API但标准工具无法创建它们;你需要第三方软件(如这篇博文)。
搜索 GitHub 发现创建RegSymlink.ps1(一个假装是 PowerShell 脚本的 C# 程序)和链接。
答案2
您可以指定一次操作并将其用于多个扩展,每个扩展都保留其自己的其他设置。
您可以为这个常见操作命名,并以该名称存储数据:
HKEY_CLASSES_ROOT
-- myname
---- open
------ command
---- print
------ command
myname
您的扩展程序将以这种方式使用:
HKEY_CLASSES_ROOT
-- .txt
---- (Default) is myname
-- .no
---- (Default) is myname
每个扩展可以有自己的其他数据。