3

我只想在安装过程中向 Visual Studio 包添加一次键盘快捷方式。基本上我知道如何从包代码中做到这一点,例如:

var dte = GetGlobalService(typeof(DTE)) as DTE2;
if (dte != null)
{                
    dte.Commands.Item("Tools.Something").Bindings = "Global::Ctrl+T, Ctrl+S";
}

问题是,我只想调用此代码一次(我不想在包类构造函数中执行此代码,因为它会在 VS 重新启动后第一次使用包时执行)。

怎么做 ?

4

3 回答 3

3

还有另一种我上次不知道的方法。所有需要做的就是在 *.vsct 文件中添加键绑定。这将注册您的快捷键并将其绑定到所选命令。

<KeyBindings>
    <KeyBinding guid="guidSomehingCmdSet" id="cmdidSomehing" editor="guidVSStd97" mod1="Control" mod2="Control" key1="T" key2="S" />    
</KeyBindings>
于 2013-04-04T16:41:30.150 回答
2

首先,如果您计划公开分发扩展,那么您可能应该删除绑定,因为它极有可能会干扰您的某些用户的现有绑定。

其次,提供命令和绑定作为Visual Studio 命令表的一部分,而不是通过自动化接口。这些命令是使用在[ProvideMenuResourceAttribute]安装包时不需要执行任何代码的属性注册的。

于 2013-03-18T14:10:53.433 回答
0
  • 每次在包 init() 函数中检查一个注册表项
  • 如果密钥不存在,则创建注册表项并执行您的代码
  • 如果找到密钥,请不要执行您的代码

例如: 1. 在您想要的位置检查“Test”键 2.如果“Test”键不存在,在注册表中创建该键并执行您的代码 3.如果找到“Test”键,请不要执行您的代码

于 2013-03-18T13:04:37.763 回答