获取所有VS2003 中的可用命令可以让你一个不落地细究IDE提供的每一个功能, 问题是, 在Tools->Options->General->Keyboard 的对话框中那个显示所有命令的list box 内容太多了, 不能用CTRL+C 把它复制出来, 更不能一个一个用手记下.
Snagit 有一个功能是指定一个带滚动条的窗口, 它会让滚动条从顶至下滚动, 同时连续地捕获屏幕图像, 接缝拼贴的工作由软件自动完成, 你得到的是一个长长的, 包括全部内容的图像.
再用ABBYY 对这个图像文件做OCR 识别, 就可以得到所有的文本形式的命令列表了, ABBYY是目前这个世界上英文字符识别最牛B的软件了, 不光识别率高, 还十分谦虚谨慎, 对于识别电脑文字而不是手写/印刷扫描出来的图像, 它识别率几乎是100%, 而显示出来可能识别有误的列表中, 一经查看, 其实全部都是识别正确的了. 就好像一个人不光漂亮地做完了你交待的活, 还把可能有误的地方一一告诉你, 但你一细看, 即使是这些地方他也都做的几近完美, 这样一款软件, 由不得你不喜欢它.
当然, 对VS2003 来说, 最好的办法是用宏自动获取所有的命令:
只是, 上面的方案对于所有的列表来说是一个通用的可行方案.
例外也是有的, 我曾经在HP的网站上看到一个用applet 实现的带滚动条的窗口, 用这招就不灵, 看来Snagit 可能依赖于滚动条窗口的典型实现.
Sub Tmp()
Dim all_cmds As Commands = DTE.Commands
Dim tw As TextWriter = File.CreateText("D:/all_cmds.txt")
For Each cmd As Command In all_cmds
'Console.WriteLine(cmd.Name)
Dim all_binding() As Object = cmd.Bindings
Dim short_cut As String = String.Empty
If all_binding.Length > 0 Then
short_cut = all_binding(0).ToString()
End If
If Not cmd.Name Is Nothing Then
tw.WriteLine(String.Format("{0}{2}" + _
"{1}", _
cmd.Name, short_cut, cmd.LocalizedName))
End If
Next
tw.Close()
End Sub
|
下面是最终获得的全部带名字的命令, 以及它们可能的键绑定
对于英文版的2003来说, 每个命令的Name和 LocalizeName 都是一样的, 似乎微软有两个例外:
Edit.GotoOutputWindowNextLocation VS Edit.GoToOutputWindowNextLocation
Edit.GotoOutputWindowPrevLocation VS Edit.GoToOutputWindowPreviousLocation
小小的不同, Goto <==> GoTo, Prev <==> Previous
对于前者, 很可能不是有意为之, 应该是微软的疏忽.
有快捷键的共339项, 全部列在前面, 按命令名排序.
后面的没有快捷键的命令共882项, 也按命令名排序.
|
文件: | vs2003_cmds.rar |
大小: | 9KB |
下载: | 下载 |
|
阅读(1012) | 评论(0) | 转发(0) |