Files
NapCatQQ/.pnpm-store/v3/files/ff/fb520d302aa34204a70d704d69e115ecca4120a3023d2e59da90244c4afa0c8bf1da0e0a4c9db8e9f756a936e36c7c546c95209e0d69cf5a11a653f3035987
T
TanTan e311ca3275
Build NapCat Artifacts / Type Check & Test (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

41 lines
1.2 KiB
Plaintext

#include <windows.h>
#include <stdio.h>
#include <ctype.h>
int main(int argc, char *argv[])
{
static int escCount = 0;
HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
while (true) {
DWORD count;
INPUT_RECORD ir;
if (!ReadConsoleInput(hStdin, &ir, 1, &count)) {
printf("ReadConsoleInput failed\n");
return 1;
}
if (true) {
DWORD mode;
GetConsoleMode(hStdin, &mode);
SetConsoleMode(hStdin, mode & ~ENABLE_PROCESSED_INPUT);
}
if (ir.EventType == KEY_EVENT) {
const KEY_EVENT_RECORD &ker = ir.Event.KeyEvent;
printf("%s", ker.bKeyDown ? "dn" : "up");
printf(" ch=");
if (isprint(ker.uChar.AsciiChar))
printf("'%c'", ker.uChar.AsciiChar);
printf("%d", ker.uChar.AsciiChar);
printf(" vk=%#x", ker.wVirtualKeyCode);
printf(" scan=%#x", ker.wVirtualScanCode);
printf(" state=%#x", (int)ker.dwControlKeyState);
printf(" repeat=%d", ker.wRepeatCount);
printf("\n");
if (ker.uChar.AsciiChar == 27 && ++escCount == 6)
break;
}
}
}