为什么在注册表项中设置了 hidebasedonvelocityid 标志?

为什么在注册表项中设置了 hidebasedonvelocityid 标志?

当我进入注册表以向文件夹添加命令提示符快捷方式时,我发现那里已经有一个命令提示符快捷方式,如下所示:

[HKEY_CLASSES_ROOT\Directory\shell\cmd]
@="@shell32.dll,-8506"
"Extended"=""
"HideBasedOnVelocityId"=dword:006698a6
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\shell\cmd\command]
@="cmd.exe /s /k pushd \"%V\""

但是,当我单击鼠标右键时,该条目并未显示在上下文菜单中。对我来说唯一有意义的是 HideBasedOnVelocityId 键,因为它阻止了它的显示。有人知道为什么吗?我是否应该输入一个 dword 值以使其正常工作?

答案1

更改HideBasedOnVelocityIdShowBasedOnVelocityId再次启用命令提示符条目

在此处输入图片描述

微软这样做是为了用 Powershell 替换 cmd.exe

答案2

我不确定你们这些好心人是否已经解决了这个问题。去年这个问题没有更新。然而,掌握权力的不是钥匙的“名称”(在这种情况下)。

有谁注意到了钥匙的价值吗?

我目前正在运行版本 17025,它是 639bc8(十六进制)或 6527944(十进制)。除非您对十六进制编辑或调试代码有一定了解,否则我无法在任何级别上讲清楚这些值。话虽如此,Robert Clemenzi 有一个页面,其中提供了其他标志的示例、它们通常被设置为的值以及它的含义。虽然他没有直接谈论 HideBasedOnVelocityId,但他的页面确实解决了这个问题。一旦您认为自己已经理解了,请继续阅读,然后他解释说可以组合值,最终结果不再是 01 00 00 1,而是以十六进制表示为“禁用文件类型编辑”或“禁用详细信息选项卡”。例如我上面的 HideBasedOnVelocityId 值,我以两种方式表达了它可以读取。键名称本身,很多时候是一个占位符,涵盖一组属性,它是本质上具有所有属性的值。十六进制将所有 4 位条目简化为 1 个总和(对我们来说),而不是每个属性 8 个字符。这些是 32 位 DWORD。我还没有看到用于标志的 64 位 DWORD(我无法想象需要那么多内存空间来保存设置值);也许下一个版本!从我们的角度来看,我们想要实现开启或关闭。但是,从您的机器的角度来看,这意味着要做更多的事情。至少对于这个问题,如果您不熟悉十六进制,当您遇到具有简单的 4 位值 1 和 0 的标志以及十六进制中的其他标志时,您现在就会知道,键的值可能具有许多属性,而不仅仅是开启或关闭的二进制值。但在某些情况下,正如我们所知,仅一个没有值的键或添加一个没有值的键就足以产生效果。

这是他的页面以供参考。

相关内容