jud*_*rke 10 c++ keyboard winapi user-input input
确定按键的最快方法是什么,以及如何确定按键是否被按住?窗口消息传递似乎很慢.请提供一个如何操作的示例,以及为什么它比替代方案更快.
要清楚,这是一个实时循环(模拟)所以我正在寻找最快的方法来确定是否按下了一个键,并检查它是否被保持.
Buk*_*kes 22
GetAsyncKeyState()就是你要找的东西.无论输入队列状态如何,它都会读取键盘的物理状态.如果设置了高位,则在通话时键已关闭.
// Fetch tab key state.
SHORT tabKeyState = GetAsyncKeyState( VK_TAB );
// Test high bit - if set, key was down when GetAsyncKeyState was called.
if( ( 1 << 15 ) & tabKeyState )
{
// TAB key down...
}
Run Code Online (Sandbox Code Playgroud)
此外,为了记录,Windows不是实时操作系统.如果您的应用程序需要实时精确度,您可能需要选择其他平台.