我想将一个菜单项添加到解决方案资源管理器中所有文件和文件夹的上下文菜单中。我能够使用vsct文件中的此条目将我的菜单项添加到项目节点。
<Menu guid="guidERAPackageAlphaCmdSet" id="ERAInsightMenu" priority="0x0700" type="Context">
<Parent guid="guidSHLMainMenu" id="IDG_VS_CTXT_PROJECT_ADD" />
<Strings>
<ButtonText>ERA Insight</ButtonText>
<CommandName>ERA Insight</CommandName>
</Strings>
</Menu>
我想在解决方案资源管理器中的所有文件和文件夹的上下文菜单中获取此信息。我应该使用的id是多少?是否有任何地方可以找到视觉工作室中所有菜单的ID?
答案 0 :(得分:2)
我知道这是旧的,但希望这有助于某人。
如果查看vsct文件的顶部,您应该看到:
<!--This header contains the command ids for the menus provided by the shell. -->
<Extern href="vsshlids.h"/>
路径因版本而异,但您应该能够在类似的路径中找到它:
C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VSSDK \ VisualStudioIntegration \ Common \ Inc
此文件包含所有常量的列表,其中一些包含说明。
以下是可用于文件中原始问题的示例:
// Common Item Node context menu
#define IDM_VS_CTXT_ITEMNODE 0x0430
// Folder Node context menu
#define IDM_VS_CTXT_FOLDERNODE 0x0431
答案 1 :(得分:1)
您可以使用本文中描述的技巧找到所有根菜单的ID(意味着它不显示上下文菜单的子项):
总结一下,您需要在以下位置添加注册表项:
HKEY_CURRENT_USER/Software/Microsoft/VisualStudio/<your vs version>/General
而屁股的关键是名为DWORD
的{{1}}类型(您必须将其设置为EnableVSIPLogging
)
然后在右键单击以显示上下文菜单之前,按住1
和CTRL
,您将看到一个包含您需要的所有ID的消息框