如何制作运行VSIX方法的快捷方式?

问题描述 投票:3回答:1

请参阅this问题。

最初的问题已经解决了,我的扩展中有一个方法。我希望当用户安装扩展时,也应该安装键盘快捷键,并且应该在按下时运行该方法。

我该怎么做呢?

visual-studio-2010 vsix vs-extensibility visual-studio-extensions
1个回答
4
投票

您可以向.vsct文件添加快捷方式。生成新扩展名时,会在向导中自动创建此文件,并说它将具有菜单命令。要手动添加:

  • 创建MyCommands.vsct
  • 将文件属性设置为VSCTCompile
  • 卸载项目,右键单击并编辑项目:
<VSCTCompile Include="MyCommands.vsct">
    <ResourceName>Menus.ctmenu</ResourceName>
    <SubType>Designer</SubType>
</VSCTCompile>
  • 声明您的项目将具有菜单和快捷方式:
[ProvideMenuResource("Menus.ctmenu",1)]
public sealed class MyPackage : Package
  • 添加键绑定部分:
<KeyBindings>
   <KeyBinding guid="yourCmdSet" id="cmdAwesome"
    editor="guidVSStd97"
    key1="VK_F7" mod1="Control Alt"
    key2="VK_F1">
   </KeyBinding>
</KeyBindings>
  • 在您的Package.Initialize中:
// Add our command handlers for menu/shortcut (commands must exist in the .vsct file)
OleMenuCommandService mcs = GetService(typeof(IMenuCommandService)) as OleMenuCommandService;
if (null != mcs)
{
    //// Create the command for the menu item.
    var menuCommandID = new CommandID(GuidList.yourCmdSet,(int)PkgCmdIDList.cmdAwesome);
    var menuItem = new MenuCommand((sender, evt) =>
    {
        // Do stuff
    }
}

更多资源:

© www.soinside.com 2019 - 2024. All rights reserved.