GetAsyncKeyState是一个用来判断函数调用时指定虚拟键的状态,确定用户当前是否按下了键盘上的一个键的函数。如果按下,则返回值最高位为1。
在控制台程序中用这个函数的好处是即使程序运行后焦点不在控制台窗口上,控制台也能接收到按键输入。而不是必须用鼠标点亮控制台窗口,它才能接收键盘输入。
如下qt小例子用于判断键盘是否按下ESC按键:
#include <QCoreApplication>
#include <windows.h>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
while (1) {
if (GetAsyncKeyState(VK_ESCAPE) & 0x8000) {
printf("按ESC有效!\r\n");
}
}
return a.exec();
}