双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

为什么GetAsyncKeyState无法判断键盘弹起???

hongh520 hongh520 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我的系统是xpsp3的,
我像通过GetAsyncKeyState判断键盘弹起,如下,

BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)
{
SHORT aa= GetAsyncKeyState(VK_SHIFT);
SHORT bb = aa&0x8000;
if (aa && !bb)
{
return TRUE;
}

return CDialog::PreTranslateMessage(pMsg);
}

我在return TRUE;这里下断点,
网上好像普遍都是if(bb),我测试的时候这样即使不按任何键也都会断下,
然后我试着用if (aa && !bb),但是根本就断不下来,
有没有人知道为什么?
...全文

相关推荐

用API(GetAsyncKeyState)实现如何识别键盘左右的shift,Ctrl或Alt键

用API(GetAsyncKeyState)实现如何识别键盘左右的shift,Ctrl或Alt键

勾之月

QT控制台console用GetAsyncKeyState函数获取键盘响应

QT控制台[console]用GetAsyncKeyState函数获取键盘响应

大菠萝_QT

C++检测键盘某键是否按下的方法

今天小编就为大家分享一篇C++检测键盘某键是否按下的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

weixin_38518006

GetAsyncKeyState键盘检测[可运行源码]

GetAsyncKeyState是Windows API中用于异步检测键盘按键状态的函数,特别适用于游戏开发和图形程序。该函数通过虚拟键代码参数(如VK_SPACE、VK_UP等)返回SHORT类型值,其高位和低位分别表示按键的持续按下和瞬时状态。使用0x8000掩码可高效检测按键是否被按住。文章详细解析了函数原型、参数、返回值(包括二进制位含义),并提供了实时检测示例代码,演示如何避免按键重复触发(如通过标志位控制)。此外,还对比了异步检测与消息队列机制的差异,总结了其在非阻塞输入检测中的优势及注意事项。

甲方克星947

VB 键盘记录器(无Dll版)

VB 键盘记录器(无Dll版) VB键盘记录器(无Dll版),由网上的一个源代码修改而得。   程序编写说明:   使用GetAsyncKeyState可以获得键盘的动作,GetAsyncKeyState函数根据虚拟键表判断按键的类型,返回值为一个16位的二进值数,如果被按下则最高位为1,即返回-32767。下面是API函数及鼠标中左右键在虚拟键表中的定义:

mirage1982
评论 5
收藏 已收藏
分享
返回顶部
hongh520
VC/MFC 16,550 成员 421,605 内容