GetAsyncKeyState的返回值是多少?

时间:2018-11-11 14:13:52

标签: ruby winapi

我正在尝试使用的项目中使用GetAsyncKeyState。唯一的问题是我不知道它返回什么值,以及如何检查它。根据MSN documentation

  

类型:简短

     

如果函数成功,则返回值指定自上次调用 GetAsyncKeyState 以来是否按下了该键,以及该键当前是向上还是向下。如果设置了最高有效位,则该键处于按下状态;如果设置了最低有效位,则在上次调用 GetAsyncKeyState 后按下了该键。但是,您不应该依赖于此最后的行为。有关更多信息,请参见“备注”。

我知道类型SHORT是一个数字,但是我在StackOverflow和互联网上看到了很多不同的答案,但是GetAsyncKeyState的返回值是true时,它的返回值是多少,返回0还是0x8001?

1 个答案:

答案 0 :(得分:3)

返回值可以是4个可能值之一:

  • 0x0000
  • 0x0001
  • 0x8000
  • 0x8001

使用& 0x8000(或< 0,因为SHORT是带符号的类型)来检查是否设置了“最高有效位”(这使带符号的类型为负)。

使用& 0x0001检查是否设置了“最低有效位”。