首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在RegisterHotKey中使用NUM/CAPS/滚动锁作为WinAPI修饰符

在RegisterHotKey中使用NUM/CAPS/滚动锁作为WinAPI修饰符
EN

Stack Overflow用户
提问于 2011-05-15 16:24:07
回答 1查看 630关注 0票数 1

我有一个非常著名的WinAPI函数:

代码语言:javascript
复制
BOOL WINAPI RegisterHotKey(
  __in_opt  HWND hWnd,
  __in      int id,
  __in      UINT fsModifiers,
  __in      UINT vk
);

我发现我应该只能使用MOD_ALTMOD_CONTROLMOD_SHIFTMOD_WIN键以及MOD_NOREPEAT

因此,我可以使用以下方法创建一个系统范围的热键,例如,用于Shift+A组合的A键:

代码语言:javascript
复制
RegisterHotKey(NULL,1,MOD_SHIFT,0x41);

现在的重要问题是:

我如何使用NUM锁/滚动锁/大写锁(就像MOD_SHIFT和其他锁一样)的状态作为系统范围内的热键的修饰符,以便当任何这样的“锁”键被打开时,键组合的注册密钥表现为热键,并且在关闭“锁”键时表现为正常的、无捕获的密钥?

我认为,使用类似GetKeyState(VK_NUMLOCK)&0xFFFF的计时器和监视来注册/取消注册热键,对于解决方案来说过于草率,可能会减慢或干扰系统性能,而且听起来是一种不完整的方法,因为它与系统范围内的键行为有关。

还有什么更好的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-16 05:29:51

根据具体情况,我可能只需在事件代码开始时检查“锁”键的状态。

否则,如果您真的愿意,可以使用SetWindowsHookEx创建一个键盘挂钩来进行监视。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6009669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档