文档章节

GetAsyncKeyState()与GetKeyboardState()

rise-worlds
 rise-worlds
发布于 2016/06/20 13:37
字数 208
阅读 8
收藏 0
PC平台上的单键异步调用.这个调用是WINDOWS特定的, 在WIN32 API中,其语法如下:
 short GetAsyncKeyState(int Keycode);

下面的例子是检查左SHIFT键是否按下:
 if(GetAsyncKeyState(VK_LSHIFT))
 {
 //whatever
 }

注意:由于调用的性质,可以检查多个值.下一个例子测试左SHIFT键与RETURN键的组合:
 if(GetAsyncKeyState(VK_LSHIFT) && GetAsyncKeyState(VK_RETURN))
 {
 //whatever
 }

可以看出,每个键测试要一个系统调用,如果系统要检查大量键,则非常麻烦.试比较这个调用与整个键盘的检查,后者可以用下列调用完成:
 bool GetKeyboardState(PBYTE *lpKeyState);

这里只编码函数成功的结果,结果以引用传递的数组形式返回. 这样,下面的连续检查进行各个测试时, 只是查找数组而已.
 if(keystate[VK_RSHIFT])
 {
 //whatever
 }

本文转载自:http://www.cnblogs.com/flying_bat/archive/2008/06/17/1224168.html

rise-worlds

rise-worlds

粉丝 2
博文 1755
码字总数 0
作品 0
深圳
程序员
私信 提问
c语言实现的超级玛丽游戏源码

int game::GetCommand() { int c = 0; if (GetAsyncKeyState('A') & 0x8000) c |= CMD_LEFT; if (GetAsyncKeyState('D') & 0x8000) c |= CMD_RIGHT; if ((GetAsyncKeyState('W') & 0x8000)||......

小辰GG
2017/12/12
0
0
C语言的代码不懂

我是大一新生,有一串贪吃蛇的代码看不懂,是关于蛇身的创建和蛇身的移动。请求各位大佬帮我仔细解释一下吧! void initsnake()//初始化蛇身 { snake tail; int i; tail=(snake)malloc(size...

Meet-sw
2018/01/07
108
1
C语言编程学习:用C语言写一个鼠标连点器

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
2018/05/20
0
0
Turn on/off Caps/Num/Scroll Lock

type TKeyType = (ktCapsLock, ktNumLock, ktScrollLock); procedure SetLedState(KeyCode: TKeyType; bOn: Boolean); var KBState: TKeyboardState; Code: Byte; begin case KeyCode of ktS......

技术小胖子
2017/11/15
0
0
C#实现扫描枪扫描二维码并打印

1.使用usb口输入的扫描枪,这里实现使用了winform 首先创建一个CS文件 using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Runti......

gaomq
01/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

从濒临解散到浴火重生,OceanBase 这十年经历了什么?

阿里妹导读:谈及国产自研数据库,就不得不提 OceanBase。与很多人想象不同的是,OceanBase 并非衔着金钥匙出生的宠儿。相反,它曾无人看好、困难重重,整个团队甚至数度濒临解散。 从危在旦...

阿里云云栖社区
19分钟前
1
0
比特币第三方API大全

在开发比特币应用时,除了使用自己搭建的节点,也可以利用第三方提供的比特币api,来获取市场行情、进行交易支付、查询账户余额等。这些第三方api不一定遵循标准的比特币rpc接口规范,但往往...

汇智网教程
30分钟前
1
0
Dozer:Dozer异常java.lang.ClassCastException

这个问题是个很难发现的问题,因为代码本身没有错误,但就是无法找到报错原因 现记录下这个报错 java.lang.ClassCastException:com.XXX.ObjectA cannot be cast to com.XXX.ObjectA 代码中并...

琴兽
今天
2
0
Feign Retryer的默认重试策略测试

1、Feign配置 @Configurationpublic class FeignConfig { @Value("${coupon_service.url:http://localhost:8081}") private String couponServiceUrl; @Bean publ......

moon888
今天
2
0
关于不同域名下的session共享问题

如果登录,首页,分类,列表,产品都在不同的二级域名下,主域名不变,一定要保证里面的版本问题,不能为了更新而更新,这样哪个下面的session都访问不了。

dragon_tech
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部