如何检测 C 语言中的一个或多个按键组合?

发布于 2024-09-10 17:52:42 字数 167 浏览 4 评论 0原文

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

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

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

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

我需要在 win32 控制台模式下执行此操作。

How can I detect one or combination of strokes of keys in ANSI C and/or with Win32 SDK?

For example: how can I detect CTRL+ALT+DEL was pressed?

Please provide me with some source code or any web-link.

Please note that, I am using polling mechanism, not event.

I need to do it in win32 console mode.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

兰花执着 2024-09-17 17:52:42

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

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


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

With ANSI C it is impossible, since ANSI C doesn't define any method to access the keyboard in this manner. The lowest-level function in it that takes input from the user is getc that returns a character after it has been entered into stdin and ENTER has been pressed.

As for the Win32 API, indeed this can be done. In the message handling function (WndProc)you should watch for WM_CHAR messages. Modifiers will help you see if CTRL and SHIFT are pressed.


P.S. just a thought, maybe what you're looking for is a tool like Autohotkey?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文