GetKeyboardState 真的是检测物理中断吗我发现不准啊

呆马神迹 2017-08-23 09:31:32
GetKeyboardState 这个函数我用来检测判断是否某一个按键被按下,按照msdn上面的文档说明这个是用来检测物理中断的,可是我在模拟按键的时候发现keybd_event 这个api不断发送按下和松开模拟按键,会干扰这个state返回的结果,也就是说不是文档上说的那样是检测物理中断的,逻辑也可以干扰的是不是啊???测试了无数遍结果还是一样,在按下x键的时候不断发送模拟按键来干扰返回的结果有正有负,微软手册错了???
#include <windows.h>
#define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)
int main(int argc, char* argv[])
{


while(1){


printf("%d\n",KEYDOWN(88));
Sleep(500);


}




return 0;
}
发送keybd_event的代码就不贴出来了
...全文
631 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-08-24
  • 打赏
  • 举报
回复
想得到物理的按键状态,请使用WinIO.sys
呆马神迹 2017-08-23
  • 打赏
  • 举报
回复
补充下上面说明开始有点不准,是检测是否一直被按下状态,理论上来说一直返回结果是负的才对,结果干扰后有非负数出现

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧