【问题标题】:How to detect if caps lock is already active? [duplicate]如何检测大写锁定是否已激活? [复制]
【发布时间】:2015-10-26 12:59:59
【问题描述】:

假设我想检测大写锁定是否处于活动状态,那么如果键是大写的,我可以在 c++ 中使用 windows 什么?

我需要 C# 中的 Console.CapsLock 等效项

我已经尝试过使用GetAsyncKeyState(VK_CAPITAL),但我不需要知道“切换”状态的关键状态

【问题讨论】:

  • 我不明白this 怎么没有回答你的问题。请用您自己的话来定义“关键状态”和“切换状态”之间的区别。
  • @CoryKramer 它不会告诉我它是否处于活动状态,它会告诉我它何时被实际按下
  • GetKeyState()GetAsyncKeyState() 将返回键的切换状态,无论它是向上还是向下。它存储在返回的最低有效位中。
  • Console.CapsLock 本身只是调用 GetKeyState(VK_CAPITAL)
  • 为什么要添加C#? OP 指的是来自 C# 的调用,但问题不是关于 C#,而是关于 C++。

标签: c# c++ windows


【解决方案1】:

来自GeyKeyState (Win32) 的值有一个低位,它给出了当前的切换状态。

【讨论】:

  • (GetKeyState(VK_CAPITAL) & 0x0001) != 0 实际上这工作谢谢大家
猜你喜欢
  • 1970-01-01
  • 2013-02-24
  • 2018-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-09
相关资源
最近更新 更多