c - 如何检测 C 中的一个或多个键的笔划?

标签 c c89

如何检测 ANSI C 和/或 Win32 SDK 中的一个或多个按键笔划?

例如:如何检测 CTRL+ALT+DEL 被按下?

请向我提供一些源代码或任何网络链接。

请注意,我使用的是轮询机制,而不是事件。

我需要在 win32 控制台模式下进行。

最佳答案

使用 ANSI C 这是不可能的,因为 ANSI C 没有定义任何以这种方式访问​​键盘的方法。其中接受用户输入的最低级函数是 getc,它在将字符输入到 stdin 并按下 ENTER 后返回一个字符。

对于Win32 API,确实可以做到。在消息处理函数 (WndProc) 中,您应该注意 WM_CHAR 消息。修饰符将帮助您查看是否按下了 CTRL 和 SHIFT。


附言只是一个想法,也许您正在寻找的是像Autohotkey这样的工具?

关于c - 如何检测 C 中的一个或多个键的笔划?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3271010/

相关文章:

c - sys/socket 缺少 msgdr : msg_control, msg_controllen、msg_flags 的成员

Clang 无法在 C89 模式下对非常量数组初始值设定项抛出错误

c - 在 C89 中打印随机数组元素

c - 无符号类型和更大的有符号类型之间的隐式转换行为不一致

c - 为什么 swap(&a++,&b++) 给出错误 "invalid lvalue in unary ' &'"?

c - 汇编零错误——switch语句

c - 在 Assembly x86 中获取三个数字的最大值时出现段错误

arrays - char 指针数组的大小

c - 当格式字符串末尾有换行符时,为什么 scanf 会要求输入两次?

c - 如何在 C89 中实现编译时大小未知的数组?