当我们在调试会话期间调用/粘贴“GetAsyncKeyState(Keys.F4)”到 VS2013 的观察窗口时,它返回 204996608。我查看了 MSDN 文档,但我不知道如何理解这个数字。它想告诉我什么?
从http://msdn.microsoft.com/en-us/library/windows/desktop/ms646293(v=vs.85).aspx:
如果该函数成功,则返回值指定自上次调用 GetAsyncKeyState 以来是否按下了该键,以及该键当前是向上还是向下。如果设置了最高有效位,则键处于按下状态,如果设置了最低有效位,则在上一次调用 GetAsyncKeyState 后按下了键。但是,您不应该依赖最后一个行为;有关更多信息,请参阅备注。
这意味着您需要检查最重要的位以查看是否按下了键:
bool f4Pressed = (GetAsyncKeyState(Keys.F4) & (1 << 15)) != 0;
Run Code Online (Sandbox Code Playgroud)