gpt4 book ai didi

windows - 如何在 Windows shell 中向文件类型添加辅助动词?

转载 作者:可可西里 更新时间:2023-11-01 12:42:43 25 4
gpt4 key购买 nike

Windows shell 编程的基本思想是,您可以将给定的文件类型(扩展名)与 MS 当前调用的 progid(例如 Company.Type.Ver)相关联:

HKCR\.txt @=Acme.Text.1

HKCR\Acme.Text.1 @=这是 Acme 的文本文件关联的 progid

然后 Acme Corp 可以将任意数量的 shell 动词作为 HKCR\Acme.Text.1\shell 的子键,例如 HKCR\Acme.Text.1\shell\open。

但如果我是 XyzCorp,我该如何向文本文件添加次要动词?

我不想篡夺主文件关联 - 我很高兴它与 Acme.Text.1 关联,但我想添加“导入到 Xyz 编辑器”。

我可以:
1. 在Acme的progid中添加一个动词(例如HKCR\Acme.Text.1\shell\my-verb)
2. 代表我们创建一个新的 progid 并将 Acme 的数据复制到其中,并将 XyzCorp 的动词合并到其中
3. 直接在文件扩展名中添加动词(至少一个以前可以这样做)
4. ???

有人知道这个问题的“正确”答案吗?

编辑:我真的对涉及必须修改其他人的 PROGID 的任何解决方案都不感兴趣。我真的更愿意在关联的 PROGID 之外添加一些东西——一个 IContextMenu 或任何需要的东西,以便为给定的文件类型添加额外的动词/选项。

拥有 ext->progid 似乎是一个疯狂的系统,其中 progid 由各个开发公司拥有,可以随意删除或更改。这让我觉得很脆弱(卸载一些东西然后噗,你的文件扩展名停止正常工作,或者安装一些东西,同样你的第二个动词消失了,因为 ext 现在被映射到一个不同的专有 PROGID,我没有在我们的时候添加我们的动词安装(当时还不知道关于这个其他还不存在的 progid 的任何信息)),而且很愚蠢。经过这么长时间,所有这些版本的 Windows 和 Microsoft 从未想出一种方法来为给定的文件类型设置处理程序层?真的吗?!?

我只是觉得那令人大吃一惊!初级编程 101 涉及学习命令模式或其他分层/级联系统。 Windows WinProcs 本身以命令模式模式进行组织 - 因此从内部窗口上下文到外部窗口上下文,许多可能的处理程序都会在给定的 MSG 处得到破解。

当然有一种方法可以在不覆盖扩展的主要 progid 关联的情况下添加适用于多个扩展的动词,它本身完全独立于主要扩展->progid 映射(以便用户可以随着时间的推移安装多个程序,并且仍然可以访问该文件类型的辅助动词)。

我想我可以看看 HKCR。* ... 我知道可以在那里添加适用于所有文件类型的动词。但是,我需要找到一些过滤方法,以便我们的动词只真正出现在我们应该应用到的那些实际文件类型中......

最佳答案

这是可能的,而且很容易做到(一旦您知道要查看的位置)。神奇之处在于键 HKEY_CLASSES_ROOT\SystemFileAssociations。在这里您会发现许多以文件扩展名命名的子项。只需在这些下创建您想要的 shell/open/command 键。

这是一个显示结构的示例注册表文件。如果将其另存为 .reg 文件并导入,那么您将在所有 .txt 文件中添加“导入 Xyz 编辑器”命令,并且不会影响主文件关联:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\SystemFileAssociations\.txt]

[HKEY_CLASSES_ROOT\SystemFileAssociations\.txt\shell]

[HKEY_CLASSES_ROOT\SystemFileAssociations\.txt\shell\xyz-import]
@="Import into Xyz Editor"

[HKEY_CLASSES_ROOT\SystemFileAssociations\.txt\shell\xyz-import\command]
@="notepad.exe \"%1\""

HKCR\SystemFileAssociatons 下还有一些未以扩展名命名的键:“text”、“image”、“video”等。这些对应于 PerceivedType HKCR 中扩展项下的条目。例如,HKCR\.png\PerceivedType 设置为“image”,HKCR\.jpg\PerceivedType 也是如此,因此您可以在 HKCR 下添加处理程序\SystemFileAssociations\image 将出现在所有“图像”类型中。

关于windows - 如何在 Windows shell 中向文件类型添加辅助动词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3102562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com