Launching Narrator With Its Shortcut

Earlier today, I was attempting to figure out why I've been sometimes receiving a crash in the Reliability Monitor from ctfmon.exe on my system, which seemed to begin occurring a few weeks ago. At the time, I tried to launch Narrator from its shortcut key, ctrl+win+enter, and noticed that it didn't launch. At the time, I'd forgotten that I'd disabled the option for Narrator to be launched from its keyboard shortcut, and it seemed as though the crash was occurring some time after pressing its shortcut with it disabled. That got me wondering how Narrator's keyboard shortcut actually works. Does the shortcut get disabled at the Windows level? Or is it handled by Narrator? Read on for my findings.


Testing Strategy

First, I needed to understand how Narrator gets launched with its shortcut. To do that, I temporarily enabled its shortcut, exitted NVDA, and pressed it. I then invoked Task Manager, went to the details tab, and looked at the command line Narrator launches with when pressing its shortcut key. It launches as:

c:\windows\system32\narrator.exe /HardwareButtonLaunch

Perfect! It uses a command line, just as I figured it did. Finally, I disabled the shortcut again so that it wouldn't invoke Narrator when pressing it, as I prefer to only be able to launch Narrator from the run box when I need it. So I went and disabled the shortcut again, and then the next step was to try the command line I'd just discovered.

Invoking Narrator From The Command Line

At this point, I've discovered that Narrator's keyboard shortcut does nothing more than call up Narrator with a command line argument, /HardwareButtonLaunch. The next step was to see how disabling the shortcut is actually done. So I went to the run dialog, typed

narrator /HardwareButtonLaunch

and pressed enter to run it. And, just as I figured, Narrator didn't launch. Why? Because when you disable the keyboard shortcut in Narrator's settings, all that happens is that it prevents Narrator from launching with the /HardwareButtonLaunch command line argument. In other words, Narrator is just not honoring that command line argument, instead of the shortcut key simply not being forwarded on or processed.