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






4.67/5 (6投票s)
一个添加到 Sql Server Management Studio 的插件,允许你配置键绑定。
引言
该项目是 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,添加了如何安装插件。