1

我有 RSI,当它突然爆发时,我Dragon Naturally Speaking 12 Home可以节省很多打字时间。一般来说,我觉得它非常准确,当我不打字时,我的 RSI 会下降。

但是,我现在正在使用它Windows 10,在Visual Studio 2013. 在附加调试器的情况下运行时,我得到了很多 COM 异常。

这些发生在不同的地方,主要是在ToolStripMenu显示 a 时(当根本不运行任何访问任何 COM 组件时),我终于将其追踪到 Dragon。

如果 Dragon 正在运行,即使关闭麦克风,也会发生异常,但如果我关闭 Dragon,它们不会

Windows 7去年我使用了相同的软件组合,没有遇到这些问题。

重新启动没有区别;在启动 Dragon 之前或之后也不会启动 Visual Studio。

我想避免转移到更高版本的 Visual Studio 或 Dragon 的费用,除非我知道问题在更高版本中得到解决。

如何防止VS2013捕获这些异常?


编辑以提供堆栈跟踪:

System.Runtime.InteropServices.COMException crossed a native/managed boundary
  ErrorCode=-2147352573
  Message=Member not found. (Exception from HRESULT: 0x80020003 (DISP_E_MEMBERNOTFOUND))
  Source=Accessibility
  StackTrace:
       at Accessibility.IAccessible.get_accKeyboardShortcut(Object varChild)
       at System.Windows.Forms.AccessibleObject.get_accKeyboardShortcutInternal(Object childID)
  InnerException: 

在显示 ToolStripMenu 时捕获 COM 异常的所有情况下,堆栈跟踪都是相同的。


**为了简洁和删除不相关的细节而进行了编辑。

4

2 回答 2

2

我猜 VS 2015 不会有太大帮助,因为它更有可能是新操作系统和 Dragon 之间的交互差异。

您可以启用 Debug -> Windows -> Modules 并检查是否有与 Dragon 相关的内容与您正在调试的进程挂钩?我猜 Dragon 挂了,它的调用没有经过错误检查,所以它们会冒泡到你的调试会话中。

Dragon中有什么东西可以排除进程吗?如果是这样,您可以排除您的目标,看看它是否有帮助。

于 2016-07-14T13:03:52.333 回答
1

好的,所以按照 Mark 的建议,我发现通过关闭 Debug 选项break when exceptions cross appdomain or managed/native boundaries,异常被吞没了,但是随着菜单的出现,出现了明显的恼人延迟。

然后,正如他在我接受的答案中建议的那样,我更仔细地查看了 Dragon 选项。由于我已经确定主要的罪魁祸首是 ToolStripMenus,因此关闭菜单和按钮的语音命令的选项是一个明显的选择:

在此处输入图像描述

取消我在屏幕截图中指示的选项使整个问题消失。

于 2016-07-14T14:25:47.157 回答