如何注册一个Windows应用程序的自定义键盘快捷键

我想创build一个Windows实用程序应用程序,可以从任何其他应用程序使用键盘快捷方式随时调用,例如:

+ T

Ctrl + T

Alt + T

Ctrl + Alt + T

Ctrl + Shift + T

我可以使用哪些组合键以及如何在Windowsregistry中设置这些组合键?

(如果其他应用程序使用该快捷方式,则当然不起作用。)

在应用程序启动时调用此Windows API时以编程方式执行此操作的选项:

RegisterHotKey(IntPtr hwnd, int id, int fsModifiers, int vk); 

并注销调用此API:

 UnregisterHotKey(IntPtr hwnd, int id); 

两者都存在于user32 API中

http://www.pinvoke.net/search.aspx?search=RegisterHotKey&namespace=%5BAll%5D

如果您需要更高级的方案来提供shell快捷方式,则应该先阅读“ Win32挂钩和钩子概述” 。

更具体地说,您需要使用SetWindowsHookEx函数添加一个WH_KEYBOARD钩子。 完成后,还需要通过UnhookWindowsHookEx解除绑定。

Dino Esposito有一篇老文章,介绍如何通过一些Win32互操作在.NET中执行Windows Hooks 。

如果您的应用程序(或其快捷方式)在桌面上可用,则可以右键单击以获取上下文菜单,选择“属性”,然后在其中输入快捷键。 只需点击快捷键文本字段,然后按所需的快捷键。

我将WIN + C分配给我的计算器, WIN + V分配给我的音量控制器。

恐怕这只是你可以通过在注册表中设置值而做的事情,正如在其他必要的答案中已经指出的,要调用一些Windows API例程来实现这一点。