I have RSI, and when it flares up, I use Dragon Naturally Speaking 12 Home
to save me a lot of typing. Generally I find it very accurate and my RSI subsides when I'm not typing so much.
However, I'm now using it on Windows 10
, developing WinForms applications in Visual Studio 2013
. When running with the debugger attached, I'm getting a lot of COM Exceptions.
These occur in various places, mostly when when a ToolStripMenu
is shown (when running nothing at all that accesses any COM component), and I have finally tracked it down to Dragon.
If Dragon is running, even with the microphone switched off, the exceptions occur, but if I switch Dragon off, they do not.
I used the same combination of software on Windows 7
last year and had none of these problems.
Rebooting makes no difference; nor does also starting Visual Studio either before or after starting Dragon.
I want to avoid the expense of moving to a later version of Visual Studio or Dragon unless I know the problem is solved at the later version.
How can VS2013 be prevented from catching these exceptions?
Edit to provide stack trace:
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:
The Stack trace is identical in all cases where the COM Exception is caught on show of a ToolStripMenu.
**Edited for conciseness and removal of irrelevant detail.
I would guess that VS 2015 isn't going to help much, because it's much more likely to be a difference in interaction between the new OS and Dragon.
Can you enable Debug -> Windows -> Modules and check if there's something related to Dragon hooked into the process you're debugging? I'm guessing Dragon hooks in and its calls aren't being error-checked, so they bubble up to your debugging session.
Is there something in Dragon to exclude processes? You can exclude your target if so and see if it helps.
Ok, so following Mark's suggestions, I found that by switching off the Debug option break when exceptions cross appdomain or managed/native boundaries
, the exceptions were swallowed, but there was a noticeable irritating delay as the menus came up.
Then, as he suggested in the answer that I have accepted, I looked more closely in the Dragon options. Since I had established that the main culprit was ToolStripMenus, the option to switch off voice commands for menus and buttons was an obvious candidate to try:
Unticking the option I've indicated in the screenshot made the whole problem go away.
User contributions licensed under CC BY-SA 3.0