我从 1995 年开始就一直在使用 explorer 菜单,包括用 'c/c++' 编写 shell 扩展。我这么说是因为我相信我已经了解文件关联键的工作原理。
我的问题是我不想Edit
右键单击 txt 文件,而且我看不到任何键(编辑出现成为规范动词)。也许注册表中有一个新的位置,可以使用每个用户条目来修改它?顺便说一句,我可以删除,Open
而且Print
很好。只是不能编辑因为它不存在!
我已经创建了子菜单来容纳大量的编辑器,而额外的“编辑”只是很烦人。
为了给大家省去麻烦,几张图片胜过千言万语。
我假设此功能出于某种原因被硬编码到资源管理器中。我希望我错了。
另外..我知道我可以编写一个 shell 扩展来在运行时编辑菜单,但不是为此..我会简单地忽略它。
帮助我欧比旺探险家大师肯诺比。你是我唯一的希望。
答案1
您可以使用NirSoft 的文件类型管理器查看与给定扩展关联的菜单项,并直接编辑它们。FileTypesMan 将相关的注册表项汇集在一起,从而为您节省冗长的注册表搜索。
对于 txt 文件,资源管理器中菜单项的位置可以是:
HKEY_CLASSES_ROOT\.txt (file type)
HKEY_CLASSES_ROOT\txtfile (perceived type)
HKEY_CLASSES_ROOT\SystemFileAssociations\.txt (default file type)
HKEY_CLASSES_ROOT\SystemFileAssociations\text (default perceived type)
“编辑”菜单项
神秘的‘编辑’命令可以在这里找到:
Computer\HKEY_CLASSES_ROOT\SystemFileAssociations\text\shell\edit
SystemFileAssociations 键
在 HKEY_CLASSES_ROOT\SystemFileAssociations 下注册的子键使 Shell 能够定义文件类型属性的默认行为并启用共享文件关联。当用户更改文件类型的默认应用程序时,新默认应用程序的 ProgID 在提供动词和其他关联信息方面具有优先权。此优先权是由于它是关联数组中的第一个条目。如果更改了默认程序,则以前的 ProgID 下的信息将不再可用。
来源:https://docs.microsoft.com/en-us/windows/win32/shell/app-registration
HKEY_CLASSES_ROOT 键
请注意,根据具体情况,HKEY_CLASSES_ROOT 中的编辑将落在以下任一键上:
HKEY_CURRENT_USER\Software\Classes
HKEY_LOCAL_MACHINE\Software\Classes
要更改默认设置,请将更改存储在 HKEY_LOCAL_MACHINE\Software\Classes 下。如果您将键写入 HKEY_CLASSES_ROOT 下的键,系统会将信息存储在 HKEY_LOCAL_MACHINE\Software\Classes 下。如果您将值写入 HKEY_CLASSES_ROOT 下的键,并且该键已存在于 HKEY_CURRENT_USER\Software\Classes 下,系统会将信息存储在那里,而不是 HKEY_LOCAL_MACHINE\Software\Classes 下。
来源:https://docs.microsoft.com/en-us/windows/win32/sysinfo/hkey-classes-root-key