我正在尝试检测何时使用GetAsyncKeyState主动按下某个键(因为我也想使用异步检查)。
屏蔽最显着的位并检查非零值应该是我理解的技巧,但是我的软件的一些用户发现正在检测到他们没有按下的随机按键,这是一个问题我的方法还是有一些我不知道的因素?
[DllImport("user32.dll")]
private static extern short GetAsyncKeyState(Keys vKey);
public static bool IsKeyDown(Keys vKey)
{
return ((GetAsyncKeyState(vKey) & 0x8000) != 0);
}
答案 0 :(得分:0)
惯用的方法是测试返回值为负数:
return ((GetAsyncKeyState(vKey) < 0);
但你的代码做同样的事情。所以我猜你的问题出在其他地方。