GetAsyncKeyState - 检查C#中的最重要位

时间:2014-12-06 20:35:19

标签: c#

我正在尝试检测何时使用GetAsyncKeyState主动按下某个键(因为我也想使用异步检查)。

屏蔽最显着的位并检查非零值应该是我理解的技巧,但是我的软件的一些用户发现正在检测到他们没有按下的随机按键,这是一个问题我的方法还是有一些我不知道的因素?

[DllImport("user32.dll")]
private static extern short GetAsyncKeyState(Keys vKey);

public static bool IsKeyDown(Keys vKey)
{
    return ((GetAsyncKeyState(vKey) & 0x8000) != 0);
}

1 个答案:

答案 0 :(得分:0)

惯用的方法是测试返回值为负数:

return ((GetAsyncKeyState(vKey) < 0);

但你的代码做同样的事情。所以我猜你的问题出在其他地方。