如何知道用户按下的键?

时间:2014-01-01 10:27:40

标签: c winapi

我在C中有一个控制台应用程序。

我正在尝试检测用户按下了哪个键:

if (...)
    printf ("Shift + Right Arrow");
if (...)
    printf ("Right Arrow");
if (...)
    printf ("中"); // (Big5(CP950): 0xA4 0xA4)
if (...)
    printf ("文"); // (Big5(CP950): 0xA4 0xE5)
....

如何检测用户按下哪个?

2 个答案:

答案 0 :(得分:2)

#include <stdio.h>
#include <Windows.h>
#include <Winuser.h>

BOOL isPressShift(){
    return (SHORT)0x8000 & GetKeyState( VK_SHIFT );
}

BOOL isPressRightArrow(){
    return (SHORT)0x8000 & GetKeyState( VK_RIGHT );
}


int main(void){
//  ... do something
    if(isPressShift() && isPressRightArrow())
        printf("Shift + Right Arrow\n");
    if(isPressRightArrow())
        printf("Right Arrow\n");
    return 0;
}

答案 1 :(得分:0)

您想要检查虚拟键heres a list