<p>An example of an app that does this is <a href="http://www.humanized.com/enso/" rel="nofollow noreferrer">Enso</a>, it pops up when you press the caps lock.</p>

[{'answer_id': 60797, 'author': 'Maximilian', 'author_id': 1733, 'author_profile': 'https://Stackoverflow.com/users/1733', 'pm_score': 0, 'selected': False, 'text': '<p>You need to install a hook in user32.dll. Lookup the Win32-API call SetWindowsHookEx. You can call it from C# via the stuff in System.Runtime.InteropServices.</p>\n\n<p><a href="https://www.codeproject.com/Articles/14485/Low-level-Windows-API-hooks-from-C-to-stop-unwante" rel="nofollow noreferrer">This article</a> discusses the topic nicely.</p>\n\n<p><strong>Edit</strong>: Lars Truijens answer looks like a nicer approach actually.</p>\n'}, {'answer_id': 60798, 'author': 'Lars Truijens', 'author_id': 1242, 'author_profile': 'https://Stackoverflow.com/users/1242', 'pm_score': 3, 'selected': True, 'text': '<p>You can act on global hotkeys by calling the winapi function <a href="https://www.pinvoke.net/default.aspx/user32/RegisterHotKey.html" rel="nofollow noreferrer">RegisterHotKey</a>. Also see <a href="https://www.codeproject.com/Articles/4345/NET-system-wide-hotkey-component" rel="nofollow noreferrer">https://www.codeproject.com/Articles/4345/NET-system-wide-hotkey-component</a> and <a href="https://www.codeproject.com/Articles/3055/System-Hotkey-Component" rel="nofollow noreferrer">https://www.codeproject.com/Articles/3055/System-Hotkey-Component</a> for example. You can not use all key combination as hotkeys. For those that don\'t work you might try a global keyboard hook (SetWindowsHookEx) </p>\n'}]
['https://Stackoverflow.com/questions/60788', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/44972/']