65.9K
CodeProject 正在变化。 阅读更多。
Home

SSMSKeyBindings - 编辑 SQL 管理工作室中的键绑定

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.67/5 (6投票s)

2007年7月11日

LGPL3

2分钟阅读

viewsIcon

47816

downloadIcon

222

一个添加到 Sql Server Management Studio 的插件,允许你配置键绑定。

Screenshot - Screenshot.jpg

引言

该项目是 SQL Server Management Studio 2005(在 SSMS 的 9.00.3042.00 版本中测试过;即 Vista 上的 SQL 2k5 SP1)的一个插件,用于管理内置命令(如复制和粘贴)的快捷键,以及可能已注册的其他插件的快捷键。

背景

我正在编写其他插件,当时以某种奇怪的方式(一定是我的朋友做的)“快速搜索”菜单项丢失了它的快捷键。然后,我编写了一个非常简单的插件来修复这个命令,然后我考虑改进这个插件,创建一个类似于 Visual Studio 2005 的快捷键界面。

使用代码

我不会详细介绍创建插件,因为 codeproject.com 上已经有很多这样的文章。我将重点关注 Command 对象。

可能有趣的是如何检索 SSMS 中所有现有的命令,例如 <b>Edit.Copy</b> 等。Command 对象可以在 DTE2 对象的 Commands 集合中找到。要列出所有命令,请使用

foreach (Command command in _applicationObject.Commands) {
    Debug.WriteLine(command.Name);
}

要检索特定的命令对象,请使用

Command command = _applicationObject.Commands.Item("Edit.Copy", -1);

当您拥有对命令对象的引用时,快捷键位于 Bindings 属性中。它是一个对象数组,其中包含格式为“scopename::modifiers+key”的字符串。

例如,Scopename 可以是 Global, SQL Query Editor & View Designer。修饰符可以是 Ctrl、Shift & Alt。在上面的屏幕截图中,您可以看到 Edit.Copy 绑定到 Global::Ctrl+C,但它也绑定到 Global::Ctrl+Ins,这意味着您可以为同一命令在不同的范围内设置多个绑定。

这些快捷键存储在您的“文档和设置”目录中的 .vsk 文件中(我的位于 C:\Users\johan.sassner\AppData\Roaming\Microsoft\Microsoft SQL Server\90\Tools\Shell\Current.vsk)。

安装

要使用此插件,您必须使用 RegAsm(在 v2.0 框架目录中找到)注册它,然后运行包含的注册表文件。它将以下键添加到注册表中

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\Tools\Shell\
    Addins\Sassner.SSMSKeybindings.Connect]
"LoadBehavior"=dword:00000001
"Description"="SSMSKeybindings"
"FriendlyName"="SSMS Keybindings addin,SQL Server Management Studio Extension"

关注点

我遇到了一个奇怪的错误,经过很长时间后,我发现了一个类似于 Visual Studio 2003 中一个错误的参考。 如果您删除命令上的最后一个快捷键,它不会存储在 SSMS 设置文件中。 我必须做的是找到另一个命令,然后重新设置该命令绑定对象(没有更改,只需重新设置它)。

private void PersistRandomCommand() {
  foreach (Command command in _applicationObject.Commands) {
    if (command.Name.Length > 0) {
      object[] bindings = (object[])command.Bindings;
        if (bindings.Length > 0) {
          command.Bindings = bindings;
          break;
        }
     }
  }
}

历史

v1.0 - 2007-07-11,添加了第一个版本。

v1.01 - 2007-07-11,添加了如何安装插件。

© . All rights reserved.