Has*_*ziz 6 windows windows-registry windows-7 context-menu regedit
这是this one的后续问题。如该答案所示,ProgrammaticAccessOnly可用于隐藏某些上下文菜单项,而无需禁用其底层或相关功能。
通过这种方式,它似乎是LegacyDisable字符串值的更有用的模拟,因为它可以用于以比破坏性更小的方式禁用注册表功能LegacyDisable。
但是,与许多其他注册表值-数据对一样,很难从 Microsoft 或其他权威来源获得有关该值及其工作原理的实际文档。我能在不同的论坛帖子之外找到以下内容,来自此处的教程:
ProgrammaticAccessOnly 是一个特殊值,它隐藏上下文菜单条目,但允许程序在需要时访问它。
这远不全面,我怀疑该值的范围仅限于上下文菜单。例如,这里至少ProgrammaticAccessOnly=Apartment详细介绍了一次,没有解释它的作用或其他数据类型。
ProgrammaticAccessOnly注册表中的字符串值究竟是如何工作的?总是使用它有什么注意事项LegacyDisable吗?另外,可以使用它的所有可能数据类型的列表是什么?
我已经回答了您关于LegacyDisable的帖子, 并且对该主题有一些了解。由于这篇文章没有答案,我会尝试,尽管我的答案可能并不令人满意。
这些注册表项的问题在于它们没有记录。每个新版本的 Windows 可能会添加更多或使其他版本无效。由于它们是无证的,微软保留了自由修改它喜欢的任何东西的自由,因此验证它们是否仍然有效的责任落在了用户身上。
有关这些项目的信息来自 Microsoft 通过各种非官方渠道。有时它们会出现在 SDK 示例或 MSDN 上,有时会出现在 Microsoft 工程师的论坛回答中,有时会出现在对 Microsoft 工程师有特权访问权限的 Microsoft 客户中。
我发现有人在文章文件类型注册 中编制了所有已知此类项目的列表 ,每个项目都有说明和文档链接。不足为奇,大多数项目都没有文档链接。
至于ProgrammaticAccessOnly,这篇文章只说“从 IContextMenu 枚举中删除动词?”,但没有文档链接。
通过谷歌搜索,我发现了 一篇 Winaero 文章 ,上面写着:
ProgrammaticAccessOnly 是主要的技巧。它是一个特殊参数,它告诉 Windows 资源管理器外壳只能通过软件以编程方式访问上下文菜单项。用户界面被锁定,因此该命令从上下文菜单中消失!
总之,这些特殊的注册表项似乎被IContextMenu 接口识别 ,其中:
公开创建或合并与 Shell 对象关联的快捷菜单的方法。
IContextMenu 接口由 Shell 扩展处理程序导出,主要由 Windows 资源管理器使用。
综上所述,存在ProgrammaticAccessOnly导致shell枚举忽略shell项,但程序仍然可以通过IContextMenu接口或直接通过修改注册表来引用和更新它。
| 归档时间: |
|
| 查看次数: |
930 次 |
| 最近记录: |