我想创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例程来实现这一点。