VS 2013 SDK:如何仅为代码窗口编辑器绑定热键?

2023-12-01

In C#要不然VB.Net,使用 Visual StudioPackage,我想为CommandBarButton, 例如Ctrl + E + R,然后,当按下时,关联的CommandBarButton应该调用它的Execute方法(我想是这样)。

我怎么能做到呢?


Update

(请避免上面的问题,该问题已经得到解答。)

实际上我正在使用vsct文件,那么我的键绑定是这样的:

<KeyBindings>

  <KeyBinding guid="guidMainCmdSet" id="cmdidMyCommand" editor="guidVSStd97" 
              mod1="Control" key1="E" 
              mod2="Control" key2="R"/>

</KeyBindings>

MSDN解释说guidVSStd97是全局的,它似乎会影响 IDE 的所有部分:

https://msdn.microsoft.com/en-us/library/bb165973%28v=vs.90%29.aspx

要在全局范围内定义键绑定,请使用编辑器 ID 值 guidVSStd97。

我的扩展适用于代码窗口的选定文本,因此很奇怪,例如在解决方案资源管理器中,或者在加载的任何项目中我都可以按热键。

然后,我希望能够仅在代码窗口编辑器.

我的问题是:

哪个是编辑ID代码窗口编辑器?

附加要求:

我需要一个MSDN参考查看更多相关的编辑器 ID,我找不到任何相关内容。


在 Visual Studio 中,键盘快捷键与命令相关联,而不是直接与 CommandBarButtons 相关联。从技术上讲,它们称为键盘绑定,并在声明命令的 .vsct 文件中声明。看键绑定元素

编辑:你必须使用:

  <KeyBinding guid="guidVSMyPackageCmdSet" id="cmdidMyCommand" editor="guidSourceCodeTextEditor" mod1="Control" key1="X" mod2="Control" key2="X"/>

  <GuidSymbol name ="guidVisualBasicEditor" value="{2c015c70-c72c-11d0-88c3-00a0c9110049}" />

  <GuidSymbol name ="guidSourceCodeTextWithEncodingEditor" value="{c7747503-0e24-4fbe-be4b-94180c3947d7}" />

  <GuidSymbol name ="guidSourceCodeTextEditor" value="{8b382828-6202-11d1-8870-0000f87579d2}" />

...

其中 guidSourceCodeTextEditor 可以是您在 部分中定义的任何名称,您必须从 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0Exp_Config\Editors 获取其值。运行该包后,如果转到“工具”>“选项”窗口、“环境”>“键盘”部分,在“显示包含的命令”中键入命令的名称,您应该会在列表中看到快捷方式,并且编辑器位于括号之间,就好像您有从“使用新快捷方式”列表中选择它。这给我们带来了一个问题:每个 Visual Studio 版本的 guid 是否相同。 AFAIK,这不能保证(没有什么可以阻止微软在新版本中更改指南),但它们可能是相同的。我现在无法验证,因为我使用的计算机只有 VS 2013。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VS 2013 SDK:如何仅为代码窗口编辑器绑定热键? 的相关文章

  • 如何在 C# 事件中区分更改是由代码还是由用户进行?

    我有一个简单的TextBox一开始是空的 我有一个简单的事件 TextChanged 可以知道用户何时更改了其中的任何内容TextBox 但是 如果我自己在代码中对其执行任何操作 该事件就会触发 喜欢设置textbox Text Test
  • boost线程在中断时不打印退出消息

    我有这段代码用于执行三个线程 其中第二个线程应在按 Enter 时中断并打印退出消息 void input val DO STUFF return void process val DO STUFF try cout lt lt waiti
  • 在 Windows Phone 上启动 pdf 文件时出现 System.Runtime.InteropServices.COMException

    我正在尝试使用我之前在另一个应用程序上使用过的以下工作代码打开 pdf 文件 但这一次 当流程到达此行时 我收到 System Runtime InteropServices COMException Windows System Laun
  • 字节到二进制字符串 C# - 显示所有 8 位数字

    我想在文本框中显示一个字节 现在我正在使用 Convert ToString MyVeryOwnByte 2 但是 当字节开头有 0 时 这些 0 就会被删除 例子 MyVeryOwnByte 00001110 Texbox shows g
  • 如何避免选择项目时 winforms 树视图图标发生变化

    我正在一个小型 C Winforms 应用程序中尝试树视图 我已经以编程方式将 ImageList 分配给树视图 并且所有节点都很好地显示了它们的图标 but当我单击一个节点时 它的图标会发生变化 变为 ImageList 中的第一个图像
  • C中有const吗?

    这个问题可能很幼稚 但是 有没有constC 中的关键字 从哪个版本开始 之间有任何语义和 或句法差异吗const在 C 和 C 中 C 和 C 之间在语法上没有差异const关键字 除了一个相当晦涩的关键字 在 C 中 自 C99 起 您
  • glDrawElements 只绘制半个四边形

    这是我的功能 void Object draw2 if mIsInitialised return Tell OpenGL about our vertex and normal data glEnableClientState GL VE
  • 捕获当前正在播放的声音

    是否可以捕获计算机上当前播放的声音 如果能够将其保存为 mp3 就好了 但我认为这样做会存在一些法律问题 所以 wav 也可以 我环顾四周 有人建议使用虚拟音频线之类的东西 在 C 中捕获声音输出 https stackoverflow c
  • 在生产者-消费者情况下使用条件变量

    我正在尝试了解条件变量以及如何在生产者 消费者情况下使用它 我有一个队列 其中一个线程将数字推入队列 而另一个线程从队列中弹出数字 当生产线程放置一些数据时 我想使用条件变量向消费线程发出信号 问题是有时 或大多数时候 它只将最多两个项目推
  • 在 C# 中赋值后如何保留有关对象的信息?

    我一直在问我的想法可能是解决方案 https stackoverflow com questions 35254467 is it possible in c sharp to get the attributes attached to
  • 使用 AutoMapper 进行 LINQ GroupBy 聚合

    试图让查询工作 但老实说不确定如何 或者是否可能 进行它 因为我尝试过的一切都不起作用 共查询6个表 Person PersonVote PersonCategory Category City FirstAdminDivision Per
  • 用 C# 编写的带有点击移动的 WPF 游戏

    我试图将标签网格移动到鼠标的位置 就像冒险游戏中的移动一样 理想情况下 我会在途中删除并重新绘制它们 但是 现在我只想弄清楚如何将 int 转换为厚度或 pointtoscreen 到目前为止我有 player XMove int Mous
  • 实际 VS2017 Enterprise 中的 VS Code 小地图? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 VS2017 在我的例子中是企业版 是否有 Visual Studio Code 今年添加的迷你地图功能
  • 如何在 Visual Studio 中调用“组织导入”TypeScript 功能?

    TypeScript 2 8 中有一个新功能 可以让您 组织进口 https devblogs microsoft com typescript announcing typescript 2 8 2 organize imports ht
  • 便携式终端

    有没有办法根据所使用的操作系统自动使用正确的 EOL 字符 我在想类似的事情std eol 我知道使用预处理器指令非常容易 但很好奇它是否已经可用 我感兴趣的是 我的应用程序中通常有一些消息 稍后我会将这些消息组合成一个字符串 并且我希望将
  • 如何使用 g++ 在 c++ 20 中使用模块?

    我读了这个链接https gcc gnu org wiki cxx modules https gcc gnu org wiki cxx modules并尝试从该网站复制以下示例 我已经知道这个编译器部分支持模块系统 注 我用的是windo
  • 从 C# 中的 .NET SecureString 读取单个字符?

    WPF 的PasswordBox 返回一个SecureString 它对窥探者隐藏密码 问题是你最终必须获得密码的值 而我在网上找到的建议都涉及将值复制到字符串中 这会让你回到窥探者的问题 IntPtr bstr Marshal Secur
  • 如何仅更改 DateTime 的日期部分,同时保留时间部分?

    我在代码中使用了很多 DateTime 我想将这些日期时间更改为我的特定日期并保留 时间 1 2012 02 02 06 00 00 gt 2015 12 12 06 00 00 2 2013 02 02 12 00 00 gt 2015
  • ASP.NET Core:会话 ID 始终变化

    今天启动了一个全新的 ASP NET Core 网站 按照说明添加会话 我们在索引页上打印出会话 ID 它始终是唯一的 我认为这可能是 cookie 合规性 所以我在 Chrome 的高级设置和调试器中删除了所有 cookie 但横幅不会再
  • 在 C# 中读取/写入命令行程序

    我正在尝试与 C 的命令行程序进行对话 它是一个情绪分析器 它的工作原理如下 CMD gt java jar analyser jar gt Starting analyser 这是我想从我的 C 程序插入内容的地方 例如 I love y

随机推荐

  • 无法在 Java 应用程序中连接到 SQLServer 数据库

    我已在尝试开发的 JSF Web 应用程序中连接到我的数据库 使用 Windows 7 NetBeans 6 9 1 SQLServer 2008 Glassfish 3 3 我正在使用sqljdbc4 jar我从 XP 系统复制了驱动程序
  • 使用 Java 访问嵌套 JSON 对象的最佳方法

    我是使用 JSON 的新手 我想知道是否有更好的方法来完成我在下面的代码中所做的事情 您会注意到 要访问嵌套的 JSON 对象 我必须先创建子 JSON 对象 数组 然后才能访问 JSON 数组元素 leagues 有没有更快或更简单的方法
  • 使用 volatile long 作为原子

    如果我有这样的事情 volatile long something global 0 long some public func return something global 当使用多个线程访问时 期望此代码不会中断 竞争条件 是否合理
  • 为什么 pyautogui 点击实际上没有点击

    我尝试使用 Pyautogui 的单击功能 但实际单击没有发生 或者至少页面没有变化 尽管它将鼠标移动到正确的位置 该窗口处于焦点位置 我认为 因为该程序与其他页面配合得很好 我只能找到一个相关问题 单击程序时遇到问题 pyautogui
  • 当应用程序在 Xcode 中停止时自动关闭 iOS 模拟器

    每当 Xcode 中的应用程序停止时 是否可以让 iOS 模拟器关闭 退出 我无法在 Xcode 或模拟器中找到执行此操作的设置 如果存在的话 它将有助于加快开发进程 要在构建停止时终止模拟器 您需要编译一个可执行文件 包括以下内容 bin
  • 如何在Windows Phone中对在线内容进行数据虚拟化?

    我有一个从互联网获取内容的应用程序 这些信息太大了 无法容纳在内存中 LongListSelector does UI Virtualization出色地 遗迹Data Virtualization 我认为解决方案是先将数据保存在数据库中然
  • 使用 pcntl_fork() 提高 HTML 抓取效率

    在前两个问题的帮助下 我现在有了一个可以工作的 HTML 抓取工具 可以将产品信息输入数据库 我现在想做的是通过让我的刮刀工作来提高效率pcntl fork 如果我将 php5 cli 脚本分成 10 个单独的块 我会在很大程度上提高总运行
  • 如何为不同的配置设置不同的应用程序图标?

    在项目属性对话框中的 应用程序 选项卡上 用于选择配置的下拉列表被禁用 如何将图标设置为依赖于构建配置 这可能会带来一些启发 但我认为它仅适用于 VS2010 应用程序图标 如何选择基于编译器指令的不同图标 32338
  • 正则表达式替换 Javascript 中的算术运算符

    我有一个包含算术运算符的字符串数组 我想用新的算术运算符替换数组中的这些算术运算符 例如 var equation 5 0 9 34 6 0 2 1 3 1 2 0 var newEquation equation replace 然而 它
  • 如何为 Junit 单元测试设置 JVM 参数?

    我有一些 Junit 单元测试需要大量堆空间才能运行 即 1G 他们测试 Webstart 应用程序的内存密集型功能 该应用程序仅在足够的堆空间下运行 并且将在 Win 7 64 位计算机上内部运行 因此重新设计测试并不是一个实际的建议 我
  • 为什么当我调用 Canvas3D.repaint() 时 Java3D 画布会闪烁

    我在 Java3D 画布上使用 postRender 绘制了 2D 元素 并希望对这些元素进行动画处理 在循环中我调用 Canvas3D repaint while animationIsRunning I update positions
  • 如何获取 tab_id 将其设置为活动选项卡

    我正在尝试使用 tkinter 构建一个文本编辑器 我只是想将焦点设置在新打开的选项卡中 通过使用静态 tab id 我可以立即设置它 但如果我一次有超过 15 个选项卡 则很难找到 tab id 我想要 tab id 与 tab name
  • 如何获取数字的数字而不将其转换为字符串/字符数组?

    如何在 C 中获取数字的数字而不将其转换为字符串或字符数组 下面按重要性升序打印数字 即个位 然后是十位 等等 do int digit n 10 putchar 0 digit n 10 while n gt 0
  • “拖动”移动 uibutton,使其行为类似于 uiScrollView

    我需要在屏幕上上下滑动 uibutton 仅限 Y 它需要被限制在一个区域内 我希望能够点击它并拖动or轻拂它 就像 uiScrollView 一样 它与 uiScrollView 不同的原因是您必须从按钮开始 而不是从 uiScrollV
  • 批处理文件成功和错误记录

    有没有办法在批处理文件中记录批处理文件的错误和成功 我正在尝试将文件从我的计算机复制到 200 台机器 效果很好 但想知道哪个失败以及失败的原因 因为屏幕消失得很快 echo off if 1 goto usage echo mapping
  • Antlr左递归问题

    我的 Antlr 语法中存在左递归问题 虽然我认为我理解为什么会出现问题 但我无法想出解决方案 问题出在我的数据类型规则的最后一行 我已经包含了完整的语法供您查看 grammar Test options output AST ASTLab
  • ggplot 将不会绘制缺失的类别

    我正在与 ggplot 作斗争 我总是这样做 有许多very关于强制 ggplot 在图例中包含零值类别的类似问题 here and here 例如 但是我 think I 有一个稍微不同的要求 我对scale x discrete和sca
  • VHDL:对固定信号值进行零扩展

    如何对固定信号值进行零扩展 我有以下信号 signal shamt std logic vector 4 downto 0 在将其分配给另一个大小为 31 到 0 的变量之前 我必须将 shamt 归零 我有以下代码 但我不确定它是否正确
  • 如何查找 PCSC 读卡器的设备实例 ID

    仅具有 PCSC 读取器的句柄和上下文 使用winscard在 Windows gt XP 上 有什么方法可以获取其设备实例 ID 或其他可以在SetupDi 用于查明为所述阅读器加载了哪个驱动程序的 API SCardGetReaderD
  • VS 2013 SDK:如何仅为代码窗口编辑器绑定热键?

    In C 要不然VB Net 使用 Visual StudioPackage 我想为CommandBarButton 例如Ctrl E R 然后 当按下时 关联的CommandBarButton应该调用它的Execute方法 我想是这样 我